描述
闭环分享是一种全新的分享方式,以深度链接为基础,赋予了每一条被分享出去的链接跳转回App能力。
过程
用户A在某个App想分享的页面中点击分享,将链接发送至各大社交平台,用户B在社交平台,例如微信中打开收到的链接,进入页面后,用户B点击网页上的【打开App】按钮,用户B手机会自动跳转至App的对应场景中 。
实现
闭环分享实现是非常简单的
(1)准备工作
1.注册应用申请AppKey和AppSecret:点击查看注册流程
2.下载SDK包
先进入 Mob官网 下载页,开发者请从官网下载,如下图:
image
保存配置后即可点击下载,如下图:
image
(2)集成配置
注册应用之后,请选择您的应用并打开ShareSDK边栏,点击闭环分享标签,如下图:
image
图上有对闭环分享功能的简单介绍和相关集成文档,直接点击立即体验即可开始使用,点击后如下图:
image
对于iOS开发者,请配置好 TeamID 、 Bundle ID和 下载地址 ,然后点击 保存设置,如下图:
image
图上系统自动生成的 Scheme 和 Association Domain是用于Xcode项目配置的,直接从开发者后台复制、粘贴即可。
scheme配置如下图:
image
Association Domain配置如下图:
image
到此,开发者配置就完成了,下面请开始您简单轻松的网页端开发配置吧!
提示:由于 Association Domain 是需要iOS证书打开该权限的,所以您可能需要更新一下您的证书,确保已开启该权限,否则Xcode会报错。
(3)前端网页JS初始化
闭环分享讲究的是网页内容不仅能够被分享,更是能够回环到App,所以使用闭环分享功能时需要前端网页做一个简单的JS集成初始化。
打开您App中分享出去的网页源码 (仅在需要的网页中进行以下配置) ,在适当的位置引用我们提供的在线JS,如下图:
image
在线JS地址为开发者后台看到的iOS配置中 “Association Domain” 的域名,例如根据上面开发者后台展示的结果则为: ahmn.t4m.cn/sharesdk.js
在JS中直接通过 <script> 标签引入:
<script type="text/javascript" src="//ahmn.t4m.cn/sharesdk.js"></script>
JS引入之后即可写一段JS初始化代码了,如下图:
image
关于JS初始化代码的释义如下:
<script type="text/javascript" src="//ahmn.t4m.cn/sharesdk.js"></script>
<script type="text/javascript">
ShareSDK([
{
params: { //params字段是网页回环跳转到App时带给App的参数
// targetAction_iOS和targetAction_And:这两个字段时必须字段,对应iOS的一个Controller的名字和安卓的一个Activity的名字,请让iOS和安卓的小伙伴提供
targetAction_iOS: "MOBAboutMobLinkViewController",
targetAction_And: "cn.sharesdk.demo.ShareMobLinkActivity",
//以下时可选字段,这些字段会原封不动的带给客户端App
other: "other params",
}
}
])
</script>
以上JS代码初始化完成之后您的网页上将会多出一个浮层类似于下图:
image
注意:仅手机模式下可见!建议通过谷歌浏览器的检查器调试。
至此,前端JS的配置工作就完成了,还是比较简单的。这个时候等客户端配置好了,点击上图浮层中的 “打开App” 按钮即可立即跳转到您的App客户端,并将对应的参数携带给您的App了。
(4)客户端代码调用
场景还原设置代理
#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
//即将进行场景还原 (之前可以自动跳转进行场景还原,现在需要自己处理,我们这边会返回一个scene的对象,可以自己根据里面返回的className控制器名称自己处理进行场景恢复)
-(void)ISSEWillRestoreScene:(SSERestoreScene *)scene error:(NSError *)error
{
NSLog(@"%@",scene.className);
}
@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
看完以上的集成是不是觉得超简单的呢 ,有需求的同学可以加他们的技术扣,了解下哦!4006852216











网友评论