什麼是閉環分享javascript
如今,市場上主流app都具備分享功能。可是絕大部分app的分享功能僅僅侷限於分享出去,並且在微信限制了開發者獲取分享結果狀態後,經過分享功能進行app或者業務推廣的方式受到很大的限制。好比說:前端
1.你不知道用戶是否真的分享了 2.不知道分享的連接傳播效果怎麼樣,多少人點擊 3.不知道如何有效的引導用戶到App,轉化沉澱成本身的客戶java
ShareSDK從這幾個問題入手,基於深度連接打造出閉環分享功能,從而真正意義上解決以上煩惱。使用體驗以下:
快速實現以深度連接爲基礎的閉環分享功能
快速實現流程瀏覽器
1、註冊、登錄開發者後臺微信
打開 Mob官網 點擊右上角登錄或註冊app
成功登錄後,點擊進入 「產品中心」 ,以下圖:
oop
快速實現以深度連接爲基礎的閉環分享功能
在 「開發者服務」 --> 「開發者平臺」 欄目,點擊 「當即進入」 ,進入以後以下圖:
ui
快速實現以深度連接爲基礎的閉環分享功能
2、下載SDK包atom
先進入Mob官網 SDK下載頁 ,iOS開發者請從官網下載,以下圖:
spa
快速實現以深度連接爲基礎的閉環分享功能
保存配置後便可點擊 「下載」 ,以下圖:
快速實現以深度連接爲基礎的閉環分享功能
安卓請使用Gradle在線集成,先選擇配置,再使用Gradle腳本,以下圖:
快速實現以深度連接爲基礎的閉環分享功能
快速實現以深度連接爲基礎的閉環分享功能
3、開發者後臺配置
若是您還沒有使用ShareSDK,請點擊 「添加應用」 ,輸入您的 「應用名稱」 ,點擊 「保存」,以下圖:
快速實現以深度連接爲基礎的閉環分享功能
而後在左邊欄點擊 「ShareSDK」 ,在彈出框中選擇 「肯定添加」 ,以下圖:
快速實現以深度連接爲基礎的閉環分享功能
若是您已經使用了ShareSDK,請選擇您的應用並打開ShareSDK邊欄,點擊 「閉環分享」 標籤,以下圖:
快速實現以深度連接爲基礎的閉環分享功能
圖上有對閉環分享功能的簡單介紹和相關集成文檔,直接點擊 「當即體驗」 便可開始使用,點擊後以下圖:
快速實現以深度連接爲基礎的閉環分享功能
對於iOS開發者,請配置好 「TeamID」 、 「Bundle ID」 和 「下載地址」 ,而後點擊 「保存設置」 ,以下圖:
快速實現以深度連接爲基礎的閉環分享功能
圖上系統自動生成的 「Scheme」 和 「Association Domain」 是用於Xcode項目配置的,請參考下文: 5、iOS客戶端開發配置
對於安卓開發者,請將配置標籤切換到 「Android」 填寫好 「下載地址」 和 「微信應用寶」的微下載連接, 以下圖:
快速實現以深度連接爲基礎的閉環分享功能
圖上系統自動生成的 「Scheme」 和 「App Links Host」 是用於安卓項目配置的(使用Gradle集成的能夠不用考慮這個),請參考下文 6、安卓客戶端開發配置
到此,開發者後臺就完成了,下面請開始您簡單輕鬆的客戶端和網頁端開發配置吧!
4、前端網頁JS初始化
閉環分享講究的是網頁內容不只可以被分享,更是可以迴環到App,因此使用閉環分享功能時須要前端網頁作一個簡單的JS集成初始化。
打開您App中分享出去的網頁源碼 (僅在須要的網頁中進行如下配置) ,在適當的位置引用咱們提供的在線JS,以下圖:
快速實現以深度連接爲基礎的閉環分享功能
在線JS地址爲開發者後臺看到的iOS配置中 「Association Domain」 的域名或者安卓配置中的「App Links Host」 域名下的 moblink.js ,例如根據上面開發者後臺展現的結果則爲: ahmn.t4m.cn/moblink.js,在JS中直接經過 <script> 標籤引入: <script type="text/javascript" src="//ahmn.t4m.cn/moblink.js"></script>
JS引入以後便可寫一段JS初始化代碼了,以下圖:
快速實現以深度連接爲基礎的閉環分享功能
關於JS初始化代碼的釋義以下:
<script type="text/javascript">
MobLink([ //初始化對象叫MobLink
{
path: "share/link", //path字段保留字段,暫時不具使用意義
params: { //params字段是網頁迴環跳轉到App時帶給App的參數
// targetAction_iOS 和 targetAction_And 這兩個字段是必須字段,對應iOS的一個Controller的名字和安卓的一個Activity的名字,請讓iOS和安卓的小夥伴提供
targetAction_iOS: "MOBAboutMobLinkViewController",
targetAction_And: "ShareMobLinkActivity",
// 如下是可選字段,這些字段會原封不動的帶給客戶端App,以某小說App的網頁爲例,下面配置字段表示的含義是:跳轉到App時告訴App這部小說名字[name]叫什麼, 當前在讀哪一頁[pageid],閱讀進度[process]是多少
name: "閉環分享",
pageid: 1,
process: 89,
}
}
])
</script>
以上JS代碼初始化完成以後您的網頁上將會多出一個浮層相似於下圖:
快速實現以深度連接爲基礎的閉環分享功能
注意:僅手機模式下可見!建議經過谷歌瀏覽器的檢查器調試。
至此,前端JS的配置工做就完成了,仍是比較簡單的。這個時候等客戶端配置好了,點擊上圖浮層中的 「打開App」 按鈕便可當即跳轉到您的App客戶端,並將對應的參數攜帶給您的App了。
5、iOS客戶端開發配置
iOS客戶端比較簡單就只有兩步,Xcode配置和代碼開發:
一、Xcode配置
主要配置 Scheme 和 「Association Domain」 ,直接從開發者後臺複製、粘貼便可 scheme配置以下圖:
快速實現以深度連接爲基礎的閉環分享功能
Association Domain配置以下圖:
快速實現以深度連接爲基礎的閉環分享功能
提示:因爲 「Association Domain」 是須要iOS證書打開該權限的,因此您可能須要更新一下您的證書,確保已開啓該權限,不然Xcode會報錯。
二、代碼開發
場景還原設置代理
@interface AppDelegate () <ISSERestoreSceneDelegate>
@end
@implementation AppDelegate
{
[ShareSDK setRestoreSceneDelegate:self];
...
}
...
{
//YES:進行場景還原,NO:不執行場景還原
restoreHandler(YES);
}
@end
還原的場景視圖配置
// 如下分類默認已經實現- (instancetype) initWithShareSDKScene:(SSERestoreScene *)scene方法,Build Settings -> Other Linker Flags 添加 -ObjC 全部ViewController自動實現此方法
// 用戶若是須要獲取透傳的參數,對ViewController其餘屬性賦初值能夠重寫覆蓋- (instancetype) initWithShareSDKScene:(SSERestoreScene *)scene方法以下:
// 例如DemoViewController爲還原回來的場景視圖
@interface DemoViewController ()
@property(nonatomic, strong) SSERestoreScene *scene;
@end
@implementation DemoViewController
{
if (self = [super init])
{
self.scene = scene;
...
}
return self;
}
}
....
@end
6、安卓客戶端開發配置
指定跳轉的Activity
在 4、前端網頁JS初始化 部分,初始化代碼中 targetAction_And 字段設定的值即爲要跳轉的Activity名稱,您須要在項目中建立一個與設定的名稱相同的Activity。
獲取場景數據
HashMap<String, Object> customDataMap = ShareSDK.getCustomDataFromLoopShare();在跳轉的目標Activity內(即上一步中設定的Activity),調用此接口來獲取所需的場景數據。類型已經轉換爲 HashMap 類型,能夠直接調用 toString() 方法來獲取數據。