init method
void
init({})
Implementation
void init(
{required String aMapAndroidKey,
required String aMapIOSKey,
required String aMapWebKey,
Map<String, dynamic>? pushPayload}) {
this.pushPayload = pushPayload;
///埋点上报
XKitReporter().register(moduleName: _kName, moduleVersion: _kVersion);
///注册位置消息入口
NimPluginCoreKit().itemPool.registerMoreAction(MessageInputAction(
type: 'location',
icon: SvgPicture.asset(
'images/ic_location.svg',
package: kPackage,
),
title: S.of().locationTitle,
permissions: [Permission.locationWhenInUse],
onTap: (context, sessionId, sessionType, {messageSender}) {
///去位置消息页面
Navigator.push(context, MaterialPageRoute(builder: (context) {
return LocationMapPage(
needLocate: true,
showOpenMap: false,
);
})).then((location) {
if (location != null && location is LocationInfo) {
///构建位置消息
nim.MessageBuilder.createLocationMessage(
sessionId: sessionId,
sessionType: sessionType,
latitude: location.latitude,
longitude: location.longitude,
address: location.address ?? '')
.then((ret) {
if (ret.isSuccess && ret.data != null) {
ret.data!.content = location.name;
///发送位置消息
messageSender?.call(ret.data!);
}
});
}
});
},
deniedTip: S.of().locationDeniedTips));
///注册位置消息解析
NimPluginCoreKit().messageBuilderPool.registerMessageTypeDecoder(
nim.NIMMessageType.location, (message) => locationMessageType);
///注册位置消息构建
NimPluginCoreKit().messageBuilderPool.registerMessageContentBuilder(
locationMessageType,
(context, message) => ChatKitMessageLocationItem(
message: message,
));
///初始化高德地图
initLocationMap(
aMapAndroidKey: aMapAndroidKey,
aMapIOSKey: aMapIOSKey,
aMapWebKey: aMapWebKey);
}