美文网首页Vesal学院
安卓集成MobLink实现web与app无缝链接

安卓集成MobLink实现web与app无缝链接

作者: 城东那个小丑 | 来源:发表于2020-02-06 20:26 被阅读0次

    1. 注册申请账号

    官网地址:[https://www.mob.com](https://www.mob.com/)
    
    

    2. 配置相关key

     在项目根目录/app/build.gradle 中添加
    // 在MobSDK的扩展中注册MobLink的相关信息
    apply plugin: "com.mob.sdk"
    MobSDK {
        appKey "2df18423456ac"
        appSecret "2787989dcf345633563717844"
        MobLink {
            uriScheme "vesal://jiep"
            appLinkHost "ayjg.t4m.cn"
        }
    }
    
    
    

    3. 引入依赖, 在根目录下/build.gradle 中添加 classpath 'com.mob.sdk:MobSDK:2018.0319.1724'

    image.png

    4.创建场景还原监听文件

    package com.ruanyikeji.vesal.vesal.module.utils;
    
    import android.app.Activity;
    import android.nfc.Tag;
    import android.util.Log;
    
    import com.mob.moblink.ActionListener;
    import com.mob.moblink.MobLink;
    import com.mob.moblink.Scene;
    import com.mob.moblink.RestoreSceneListener;
    import com.ruanyikeji.vesal.vesal.MainActivity;
    //Java代码
    public class SceneListener extends Object implements RestoreSceneListener {
    
        @Override
        public Class<? extends Activity> willRestoreScene(Scene scene) {
            Log.i("moblinkTest","将要处理回调 willRestoreScene"+scene.getParams().toString());
            return null;
        }
        @Override
        public void notFoundScene(Scene scene) {
            //TODO 未找到处理scene的activity时回调
            Log.i("moblinkTest","未找到处理scene的activity时回调"+scene.getParams().toString());
        }
        @Override
        public void completeRestore(Scene scene) {
            // TODO 在"拉起"处理场景的Activity之后调用
            Log.i("moblinkTest","在拉起处理场景的Activity之后调用"+scene.getParams().toString());
        }
    }
    
    

    5.在MainApplication初始化创建好的监听

     //java代码
                MobLink.setRestoreSceneListener(new SceneListener());
    

    6.在需要的activity 中实现接口SceneRestorable

    image.png

    7. 覆盖接口的两个方法

     @Override
        public void onReturnSceneData(Scene scene) {
            // 处理场景还原数据, 可以在这里做更新画面等操作
    
            System.out.println("moblinkTest 处理场景还原数据:"+scene.getParams().toString());
            this.showDialog(scene.getParams().toString());
        }
        @Override
        // 必须重写该方法,防止MobLink在某些情景下无法还原
        public void onNewIntent(Intent intent) {
            super.onNewIntent(intent);
            setIntent(intent);
            MobLink.updateNewIntent(getIntent(), this);
        }
    

    8. 集成完毕 ,如果需要获取MobId, 可参考如下方法

      public void getMobId() {
            System.out.println("getMobId:");
            Scene s = new Scene();
    
            s.setPath("vesal/main");
    
            MobLink.getMobID(s, new ActionListener<String>() {
                @Override
                public void onResult(String mobID) {
                    System.out.println("getMobId mobID:" + mobID);
                }
    
                @Override
                public void onError(Throwable t){
                    t.printStackTrace();
                    System.out.println(" getMobId mobID:ERROR");
                }
            });
    
        }
    

    相关文章

      网友评论

        本文标题:安卓集成MobLink实现web与app无缝链接

        本文链接:https://www.haomeiwen.com/subject/jqouxhtx.html