本插件是基于MobLink 对Flutter进行插件裁减反对。目标是不便Flutter开发者更不便地集成应用MobLink。Demo例子:https://github.com/MobClub/Mo...

开始集成

引入插件

  • 在 pubspec.yaml 文件中退出上面依赖
    `dependencies:
    moblink:
    mobcommonlib:`
    iOS端配置
    平台设置参考 iOS集成文档
    实现
  • 第一步增加配置里的XCode配置,配置初始化信息MOBAppKey 和 MOBAppSecret;
  • 第二步Mob后盾根本配置里的iOS端配置信息

Android端配置
平台设置参考 Android集成文档
实现

  • 第一步按Android集成文档中的第一点注册利用,申请Mob的 AppKey 和 AppSecret;
  • 第二步按Android集成文档中的第一点实现集成配置 1.关上我的项目根目录的build.gradle,在buildscrip–>dependencies 模块上面增加classpath 'com.mob.sdk:MobSDK:+',如下所示;
buildscript {    repositories {         maven {          url "https://mvn.mob.com/android"      }        ...    }    dependencies {        ...     classpath "com.mob.sdk:MobSDK:2018.0319.1724"    }}

2.在应用MobLink模块的build.gradle中,增加MobSDK插件和扩大,如下所示:

// 增加插件apply plugin: 'com.mob.sdk'// 在MobSDK的扩大中注册MobLink的相干信息MobSDK {    appKey "您的Mob-AppKey"    appSecret "您的Mob-AppSecret"    MobLink {        uriScheme "您后盾配置的scheme"        appLinkHost "您后盾开启AppLink时生成的Host"    }}
  • 第三步在MainActivity中增加以下代码:

    //导入的包import com.mob.moblink.MobLink;// 必须重写该办法,避免MobLink在某些情景下无奈还原@Overrideprotected void onNewIntent(Intent intent) {  super.onNewIntent(intent);  setIntent(intent);  MobLink.updateNewIntent(getIntent(), this);}

  • 第四步,调用隐衷接口时,须要将导入插件的example中的MainActivity中接口的代码复制到本人的MainActivity中去,否则隐衷接口的调用会有问题:
  • 第五步创立一个application继承FlutterApplication,在创立的application的onCreate中增加以下代码避免APP杀死过程后无奈进行场景还原:

    //导入的包import com.example.moblink.MoblinkPlugin;import com.mob.moblink.MobLink;//避免MobLink在APP杀死过程后无奈还原@Override  public void onCreate() {      super.onCreate();      MobLink.setRestoreSceneListener(new MoblinkPlugin.SceneListener());  }


    留神:Android的相干代码在Flutter层会报错,但不会影响我的项目的运行和MobLink性能的应用

Web:平台设置参考 Web端集成文档

接口阐明

回传隐衷协定状态

//设置通道   static const MethodChannel _methodChannel_submit =   const MethodChannel('private.flutter.io/method_channel_submit_private');   //flutterPara设置true或者false    Future<void> _setPrivateState(flutterPara) async {    String result;    try {      result = await _methodChannel_submit.invokeMethod('submitPrivacyGrantResult', flutterPara);      print('隐衷协定提交胜利:' + result);      showAlert('隐衷协定提交胜利:$result', context);    } on PlatformException catch (e) {}    setState(() {      // _privateContent = result;    });  }

获取MobId

// 设置参数MLSDKScene scene = MLSDKScene('/demo/a', {'param1': '123', 'param2': '456'});// 传入 scene , 获取 mobidMoblink.getMobId(scene, (String mobid, String domain, MLSDKError error) {   if (mobid != null) {      print('失去mobid:' + mobid);      showAlert( mobid, context);        // do something       }    });

场景还原回调

//Android调用 //设置回调通道static const EventChannel _eventChannel =const EventChannel('JAVA_TO_FLUTTER'); //监听开始(传递监听到原生端,用户监听场景还原的数据回传回来)eventChannel.receiveBroadcastStream().listen(_onEvent, onError: _onError); // 场景还原的回调  void _onEvent(Object event) {print('onEvent返回的内容: $event');  if (null != event) {      showAlert('onEvent要还原的门路为[活着]:$event', context);   } }   void _onError(Object error) {       print('返回的谬误'); }//ios调用Moblink.restoreScene((MLSDKScene scene){       showAlert('要还原的门路为:'+ scene.className, context);       print('要还原的门路为:'+ scene.className);    });

Flutter iOS端注意事项
因为插件更新,SDK的Pod依赖被替换,Flutter 自身写入Pod文件不会先执行删除原有依赖,导致可能会呈现原有本地库仍然存在,请查看Pod文件夹下文件,间接手动删除mob_linkSDK 以及 MOBFoundation文件即可,如有疑难,请间接通过官网和咱们分割。