快速實現以深度連接爲基礎的閉環分享功能

什麼是閉環分享

如今,市場上主流app都具備分享功能。可是絕大部分app的分享功能僅僅侷限於分享出去,並且在微信限制了開發者獲取分享結果狀態後,經過分享功能進行app或者業務推廣的方式受到很大的限制。好比說:javascript

1.你不知道用戶是否真的分享了 2.不知道分享的連接傳播效果怎麼樣,多少人點擊 3.不知道如何有效的引導用戶到App,轉化沉澱成本身的客戶前端

ShareSDK從這幾個問題入手,基於深度連接打造出閉環分享功能,從而真正意義上解決以上煩惱。使用體驗以下:java

快速實現以深度連接爲基礎的閉環分享功能

快速實現流程

1、註冊、登錄開發者後臺瀏覽器

打開 Mob官網 點擊右上角登錄或註冊bash

成功登錄後,點擊進入 「產品中心」 ,以下圖:微信

快速實現以深度連接爲基礎的閉環分享功能

在 「開發者服務」 --> 「開發者平臺」 欄目,點擊 「當即進入」 ,進入以後以下圖:app

快速實現以深度連接爲基礎的閉環分享功能

2、下載SDK包oop

先進入Mob官網 SDK下載頁 ,iOS開發者請從官網下載,以下圖:ui

快速實現以深度連接爲基礎的閉環分享功能

保存配置後便可點擊 「下載」 ,以下圖:atom

快速實現以深度連接爲基礎的閉環分享功能

安卓請使用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會報錯。

二、代碼開發

場景還原設置代理

#import <ShareSDKExtension/ShareSDK+Extension.h>
#import <ShareSDKExtension/SSERestoreSceneHeader.h>
@interface AppDelegate () <ISSERestoreSceneDelegate>
@end
@implementation AppDelegate 
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
 [ShareSDK setRestoreSceneDelegate:self];
 ...
}
...
#pragma mark - ISSERestoreSceneDelegate
- (void)ISSEWillRestoreScene:(SSERestoreScene *)scene Restore:(void (^)(BOOL))restoreHandler
{
	//YES:進行場景還原,NO:不執行場景還原
 restoreHandler(YES);
}
@end
複製代碼

還原的場景視圖配置

// 如下分類默認已經實現- (instancetype) initWithShareSDKScene:(SSERestoreScene *)scene方法,Build Settings -> Other Linker Flags 添加 -ObjC 全部ViewController自動實現此方法
#import <ShareSDKExtension/UIViewController+SSERestoreScene.h>
// 用戶若是須要獲取透傳的參數,對ViewController其餘屬性賦初值能夠重寫覆蓋- (instancetype) initWithShareSDKScene:(SSERestoreScene *)scene方法以下:
// 例如DemoViewController爲還原回來的場景視圖
@interface DemoViewController ()
@property(nonatomic, strong) SSERestoreScene *scene;
@end
@implementation DemoViewController
- (instancetype) initWithShareSDKScene:(SSERestoreScene *)scene
{
 if (self = [super init])
 {
 self.scene = scene;
 ...
 }
 return self;
}
- (void)viewDidLoad {
	[super viewDidLoad];
	...
}
....
@end
複製代碼

6、安卓客戶端開發配置

指定跳轉的Activity

在 4、前端網頁JS初始化 部分,初始化代碼中 targetAction_And 字段設定的值即爲要跳轉的Activity名稱,您須要在項目中建立一個與設定的名稱相同的Activity。

獲取場景數據

HashMap<String, Object> customDataMap = ShareSDK.getCustomDataFromLoopShare();
複製代碼

在跳轉的目標Activity內(即上一步中設定的Activity),調用此接口來獲取所需的場景數據。類型已經轉換爲 HashMap 類型,能夠直接調用 toString() 方法來獲取數據。

相關文章
相關標籤/搜索