本文意在提供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:http://f.moblink.mob.com/pro/scene/novel?id=1&mobid=1467308004604772352
//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;// 申请场景IDMobLink.getMobID(s, new ActionListener() { public void onResult(String mobID) { // TODO 依据mobID进行分享等操作 } public void onError(Throwable throwable) { // TODO 处理错误后果 }});
参数获取
在指定跳转的页面通过SceneRestorable接口获取链接中设置的的参数信息,您能够用这些参数做一下逻辑判断,实现您需要的性能,如多样化跳转,无码邀请,起源可追溯等性能
//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); }}