快速实现以深度连接为基础的闭环分享功能

什么是闭环分享

如今,市场上主流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() 方法来获取数据。

相关文章
相关标签/搜索