init method

void init({
  1. required String aMapAndroidKey,
  2. required String aMapIOSKey,
  3. required String aMapWebKey,
  4. Map<String, dynamic>? pushPayload,
})

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);
}