網站首頁 編程語言 正文
前言
本文意在提供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="http://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);
}
}
原文鏈接:https://juejin.cn/post/7142780188047179813
相關推薦
- 2023-04-07 關于C#中的Invoke示例詳解_C#教程
- 2023-07-02 解密Python中的作用域與名字空間_python
- 2022-04-09 python去掉空格的一些常用方式_python
- 2022-10-05 C#?獲取文件夾里所有文件名的詳細代碼_C#教程
- 2023-06-20 在VScode里面添加Python解釋器的詳細步驟_python
- 2022-03-26 Unity實現坦克模型_C#教程
- 2023-07-06 mac配置idea自帶的maven3環境變量
- 2023-07-06 mac快速配置iterm2
- 最近更新
-
- window11 系統安裝 yarn
- 超詳細win安裝深度學習環境2025年最新版(
- Linux 中運行的top命令 怎么退出?
- MySQL 中decimal 的用法? 存儲小
- get 、set 、toString 方法的使
- @Resource和 @Autowired注解
- Java基礎操作-- 運算符,流程控制 Flo
- 1. Int 和Integer 的區別,Jav
- spring @retryable不生效的一種
- Spring Security之認證信息的處理
- Spring Security之認證過濾器
- Spring Security概述快速入門
- Spring Security之配置體系
- 【SpringBoot】SpringCache
- Spring Security之基于方法配置權
- redisson分布式鎖中waittime的設
- maven:解決release錯誤:Artif
- restTemplate使用總結
- Spring Security之安全異常處理
- MybatisPlus優雅實現加密?
- Spring ioc容器與Bean的生命周期。
- 【探索SpringCloud】服務發現-Nac
- Spring Security之基于HttpR
- Redis 底層數據結構-簡單動態字符串(SD
- arthas操作spring被代理目標對象命令
- Spring中的單例模式應用詳解
- 聊聊消息隊列,發送消息的4種方式
- bootspring第三方資源配置管理
- GIT同步修改后的遠程分支