Vesal学院

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

2020-02-06  本文已影响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");
            }
        });

    }
上一篇 下一篇

猜你喜欢

热点阅读