MobLink for Flutter

本插件是基于MobLink 对Flutter进行插件扩充支持。目的是方便Flutter开发者更方便地集成使用MobLink。

Demo例子GitHub - MobClub/MobLink-For-Flutter

开始集成

引入插件

  • 在 pubspec.yaml 文件中加入下面依赖
<span style="background-color:#42475a"><span style="color:#a9b7c6"><code><span style="color:#6897bb">dependencies:</span>
<span style="color:#6897bb">  moblink:</span>
<span style="color:#6897bb">  mobcommonlib:</span></code></span></span>

iOS端配置

平台设置参考 iOS集成文档

实现

  • 第一步添加配置里的XCode配置,配置初始化信息MOBAppKey 和 MOBAppSecret;
  • 第二步Mob后台基本配置里的iOS端配置信息

Android端配置

平台设置参考 Android集成文档

实现

  • 第一步按Android集成文档中的第一点注册应用,申请Mob的 AppKey 和 AppSecret;

  • 第二步按Android集成文档中的第一点完成集成配置 1.打开项目根目录的build.gradle,在buildscrip–>dependencies 模块下面添加classpath 'com.mob.sdk:MobSDK:+',如下所示;

    <span style="background-color:#42475a"><span style="color:#a9b7c6"><code class="language-java">buildscript {
        repositories {
             maven {
              url <span style="color:#6a8759">"https://mvn.mob.com/android"</span>
          }
            ...
        }
    
        dependencies {
            ...
         classpath <span style="color:#6a8759">"com.mob.sdk:MobSDK:2018.0319.1724"</span>
        }
    }</code></span></span>

    2.在使用MobLink模块的build.gradle中,添加MobSDK插件和扩展,如下所示:

    <span style="background-color:#42475a"><span style="color:#a9b7c6"><code class="language-java"><span style="color:grey">// 添加插件</span>
    apply <span style="color:#6a8759">plugin:</span> <span style="color:#6a8759">'com.mob.sdk'</span>
    <span style="color:grey">// 在MobSDK的扩展中注册MobLink的相关信息</span>
    MobSDK {
        appKey <span style="color:#6a8759">"您的Mob-AppKey"</span>
        appSecret <span style="color:#6a8759">"您的Mob-AppSecret"</span>
        MobLink {
            uriScheme <span style="color:#6a8759">"您后台配置的scheme"</span>
            appLinkHost <span style="color:#6a8759">"您后台开启AppLink时生成的Host"</span>
        }
    }</code></span></span>
  • 第三步在MainActivity中添加以下代码:

    <span style="background-color:#42475a"><span style="color:#a9b7c6"><code><span style="color:grey">//导入的包</span>
    import com.mob.moblink.MobLink;
    <span style="color:grey">// 必须重写该方法,防止MobLink在某些情景下无法还原</span>
      @Override
      protected void onNewIntent(Intent intent) {
        super.onNewIntent(intent);
        setIntent(intent);
        MobLink.updateNewIntent(getIntent(), this);
      }</code></span></span>

  • 第四步,调用隐私接口时,需要将导入插件的example中的MainActivity中接口的代码复制到自己的MainActivity中去,否则隐私接口的调用会有问题:

  • 第五步创建一个application继承FlutterApplication,在创建的application的onCreate中添加以下代码防止APP杀死进程后无法进行场景还原:

    <span style="background-color:#42475a"><span style="color:#a9b7c6"><code><span style="color:grey">//导入的包</span>
    <span style="color:#bbb529">import com.example.moblink.MoblinkPlugin;</span>
    <span style="color:#bbb529">import com.mob.moblink.MobLink;</span>
    <span style="color:grey">//防止MobLink在APP杀死进程后无法还原</span>
    @Override
        <span style="color:#cc7832">public</span> <span style="color:#cc7832">void</span> onCreate() {
            <span style="color:#cc7832">super</span>.onCreate();
            MobLink.setRestoreSceneListener(<span style="color:#cc7832">new</span> MoblinkPlugin.SceneListener());
        }</code></span></span>

注意:Android的相关代码在Flutter层会报错,但不会影响项目的运行和MobLink功能的使用

Web:

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

接口说明

回传隐私协议状态

<span style="background-color:#42475a"><span style="color:#a9b7c6"><code><span style="color:grey">//设置通道</span>
   static const MethodChannel _methodChannel_submit =
   const MethodChannel('private.flutter.io/method_channel_submit_private');  
 <span style="color:grey">//flutterPara设置true或者false</span>
    Future<void> _setPrivateState(flutterPara) async {
    String result;
    <span style="color:#cc7832">try</span> {
      result = await _methodChannel_submit.invokeMethod('submitPrivacyGrantResult', flutterPara);
      print('隐私协议提交成功:' + result);
      showAlert('隐私协议提交成功:$result', context);
    } on PlatformException catch (e) {}
    setState(() {
      <span style="color:grey">// _privateContent = result;</span>
    });
  }</code></span></span>

获取MobId

<span style="background-color:#42475a"><span style="color:#a9b7c6"><code><span style="color:grey">// 设置参数</span>
MLSDKScene scene = MLSDKScene('/demo/a', {'param1': '123', 'param2': '456'});
<span style="color:grey">// 传入 scene , 获取 mobid</span>
Moblink.getMobId(scene, (String mobid, String domain, MLSDKError error) {
   <span style="color:#cc7832">if</span> (mobid != null) {
      print('得到mobid:' + mobid);
      showAlert( mobid, context);
        <span style="color:grey">// do something</span>
       }
    });</code></span></span>

场景还原回调

<span style="background-color:#42475a"><span style="color:#a9b7c6"><code><span style="color:grey">//Android调用</span>
 <span style="color:grey">//设置回调通道</span>
<span style="color:#cc7832">static</span> <span style="color:#cc7832">const</span> EventChannel _eventChannel =<span style="color:#cc7832">const</span> EventChannel(<span style="color:#6a8759">'JAVA_TO_FLUTTER'</span>);
 <span style="color:grey">//监听开始(传递监听到原生端,用户监听场景还原的数据回传回来)</span>
eventChannel.receiveBroadcastStream().listen(_onEvent, onError: _onError);
 <span style="color:grey">// 场景还原的回调</span>
  <span style="color:#cc7832">void</span> _onEvent(Object event) {
print(<span style="color:#6a8759">'onEvent返回的内容: $event'</span>);
  <span style="color:#cc7832">if</span> (<span style="color:#cc7832">null</span> != event) {
      showAlert(<span style="color:#6a8759">'onEvent要还原的路径为[活着]:$event'</span>, context);
   }
 }
   <span style="color:#cc7832">void</span> _onError(Object error) {
       print(<span style="color:#6a8759">'返回的错误'</span>);
 }
<span style="color:grey">//ios调用</span>
Moblink.restoreScene((MLSDKScene scene){
       showAlert(<span style="color:#6a8759">'要还原的路径为:'</span>+ scene.className, context);
       print(<span style="color:#6a8759">'要还原的路径为:'</span>+ scene.className);
    });</code></span></span>

Flutter iOS端注意事项

由于插件更新,SDK的Pod依赖被替换,Flutter 本身写入Pod文件不会先执行删除原有依赖,导致可能会出现原有本地库依然存在,请检查Pod文件夹下文件,直接手动删除mob_linkSDK 以及 MOBFoundation文件即可,如有疑问,请直接通过官网和我们联系。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

MobTech袤博科技

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值