目录
前言
本文意在提供MobLink的业务场景使用说明希望可以给你带来更愉快的开发心情:
MobLink的功能实现就是在分享前会将链接的参数信息保存到服务器,分享者A通过微信、QQ等分享给他的好友B时,好友B打开链接,点击页面的“在app中打开”,网页中的js会尝试打开对应的APP。如果打开失败,js会把当前设备的信息缓存到我们的服务器,然后跳转app下载页面。后面app安装并启动,我们的sdk就会跟服务器请求缓存的参数,于是app就可以获取到链接设置的参数信息,如果js打开成功了,js会自己把页面中缓存的参数传递给app,app同样可以获取到链接设置的参数信息.如无码邀请,可以绑定传递参数,建议为uid,A分享给B,B注册后自动绑定A的uid.
参数设置
在App 中分享商品/内容/活动页面时,将您需要的参数信息添加到分享的链接中。
通过网页端的params直接设置参数信息
<script type="text/javascript" src="//1p.t4m.cn/applink.js"></script> /* * MobLink 支持数组=>MobLink([...]) 和对象=>MobLink({...}) 两种初始化形式 * 页面上有多个元素需要跳转时使用数组方式,仅单个元素需要跳转时可以使用对象的方式进行初始化 * el: 表示网页上Element的id值,该字段为空或者不写,则表示MobLink **默认浮层** 上的打开按钮(注意:该字段支持selector方式: 1.'.class' 2.'#id1' 3.['#id1','#id2']) * path: 对应App里需要恢复页面的路径 * params: 网页需要带给客户端的参数 */ // 页面上仅单个元素需要跳转时可以使用对象方式进行初始化 MobLink({ el: '', path: 'demo/a', params: { key1: 'value1', key2: 'value2', } }) // 页面上有多个元素需要跳转时要使用数组方式进行初始化 MobLink([ { el: '', path: 'demo/a', params: { key1: 'value1', key2: 'value2', } }, { el: '#openAppBtn1', path: 'demo/b', params: { key1: 'value1', key2: 'value2', } }, { el: '#openAppBtn2', path: 'demo/c', params: { key1: 'value1', key2: 'value2', } } ]); </script>
通过客户端的接口设置参数信息
通过getMobID接口生成MobId,并把mobid拼接在您的场景还原链接后面.
eg:f.moblink.mob.com/pro/scene/n…
javakotlin
//java代码 // 设置场景参数 HashMap senceParams = new HashMap(); senceParams.put("key1", "value1"); senceParams.put("key2", "value2"); senceParams.put("key3", "value3"); // 新建场景 Scene s = new Scene(); s.path = "/demo/a"; s.params = senceParams; // 请求场景ID MobLink.getMobID(s, new ActionListener() { public void onResult(String mobID) { // TODO 根据mobID进行分享等操作 } public void onError(Throwable throwable) { // TODO 处理错误结果 } });
参数获取
在指定跳转的页面通过SceneRestorable接口获取链接中设置的的参数信息,您可以用这些参数做一下逻辑判断,实现您需求的功能,如多样化跳转,无码邀请,来源可追溯等功能
javakotlin
//java代码 public class RestoreSenceActivity extends Activity implements SceneRestorable { @Override public void onReturnSceneData(Scene scene) { // 处理场景还原数据, 可以在这里做更新画面等操作 } @Override // 必须重写该方法,防止MobLink在某些情景下无法还原 protected void onNewIntent(Intent intent) { super.onNewIntent(intent); setIntent(intent); MobLink.updateNewIntent(getIntent(), this); } }