mLink兼容客户原有的scheme跳转路由。

置顶 飞翔的蜗牛 2个月前 350次点击 来自 Android

接口说明:
//scheme跳转入口
MLinkAPIFactory.createAPI(this).router();
//应用宝跳转入口
MLinkAPIFactory.createAPI(this).checkYYB();
//场景还原跳转入口
MLinkAPIFactory.createAPI(this).deferredRouter();
//回调(必须)以上三个功能都需要此接口
MLinkAPIFactory.createAPI(this).register()

场景描述:
代码里有自己的scheme跳转逻辑,但是需要魔窗的某个功能,比如场景还原或者应用宝跳转。

步骤一、魔窗后台mLink服务配置
方式1.魔窗后台只配置一个mLink服务页,目标页区分通过动态参数来区分
方式2.客户有自己的scheme规则区分目标页,则将之前的所有scheme uri配置成相应的mLink服务页,生成mLink短链。

步骤二、代码集成

@Override
    public void onCreate(Bundle savedInstanceState) {
        // TODO Auto-generated method stub
        super.onCreate(savedInstanceState);

        setContentView(R.layout.activity_splash);
        initMW();
        registerForMLinkCallback();
        Uri uri = getIntent().getData();
        MLinkAPIFactory.createAPI(SplashActivity.this).deferredRouter();

        if (uri != null) {
            redirectUri(uri);
        } else {
            MLinkAPIFactory.createAPI(this).checkYYB();
        }
    }
    private void redirectUri(Uri uri){
        //// TODO: 客户自己的跳转逻辑
    }
    private void initMW() {
        MWConfiguration config = new MWConfiguration(this);
        config.setLogEnable(true)
                .setPageTrackWithFragment(true)
                .setSharePlatform(MWConfiguration.ORIGINAL);
        MagicWindowSDK.initSDK(config);
    }
    private  void registerForMLinkCallback() {
        MLinkAPI mLink = MLinkAPIFactory.createAPI(this);
        mLink.registerDefault(new MLinkCallback() {
            @Override
            public void execute(Map<String, String> paramMap, Uri uri, Context context) {
                //todo: 调用自己的跳转逻辑
                redirectUri(uri);
            }
        });
    }

    @Override
    public void onNewIntent(Intent intent) {
        setIntent(intent);
        super.onNewIntent(intent);
    }

    @Override
    public void onPause() {
        Session.onPause(this);
        super.onPause();
    }

    @Override
    public void onResume() {
        Session.onResume(this);
        super.onResume();
    }

如果需要场景还原,按照集成文档在首页调用MLinkAPIFactory.createAPI(this).deferredRouter()即可(如果失败,记得在启动页调用MLink.getInstance(this)初始化mLink)

目前暂无回复

魔窗, 移动互联网生态领导者