shareinstall-ios集成方法

耗尽温柔 提交于 2019-12-20 04:03:53

1、产品原理

精确的App安装来源与携带参数安装 :shareInstall的核心价值在于,帮助Android/iOS开发者通过shareInstall提供的sdk,精确的获取app每一次安装的分享(或推广)来源。原理如下:开发者在分享的h5页面上集成 shareInstall web sdk,发布分享链接时在url上动态的拼接任意的自定义参数(如推广渠道号,邀请码等等);当某一终端访问该h5页面时,shareinstall web sdk将同时确定该设备的个性化信息和采集自定义参数,上传至shareInstall服务器, 待用户通过该h5页面安装app后首次打开时(如当前设备已安装该app,将直接拉起该app并传递参数),使用shareInstall Android/iOS sdk从shareInstall服务器再取回暂存的自定义参数。

一键拉起功能:shareInstall通过标准的scheme、universal link 等技术,在app已安装的情况下,从各种浏览器(包括微信、QQ、新浪微博、钉钉等主流社交软件的内置浏览器)拉起app并传递自定义参数,避免重复安装,如没安装则调至appStore或应用宝下载app,下载完毕唤起app的相应页面。

2、iOS SDK集成

1、初始化

1.1 获取shareinstall 的AppKey

登录shareinstall后台管理(http://www.shareinstall.com/login.html),按照步骤提示注册应用,可获得AppKey。

1.2 导入SDK

下载 iOS 最新版本 SDK,解压 SDK 压缩包,将文件夹导入工程中(导入请选中 “Copy items if needed” )

1.3 初始化SDK

在AppDelegate中,增加头文件的引用:

#import “ShareInstallSDK.h”
//swift开发时,请使用桥接方式引入

Object-C Swift
//在-(BOOL)application:didFinishLaunchingWithOptions:方法中调用setAppKey方法来初始化SDK,如下代码所示:

  • (BOOL)application:(UIApplication )application didFinishLaunchingWithOptions:(NSDictionary)launchOptions {
    [ShareInstallSDK setAppKey:@“shareinstall为当前应用分配的appkey”
    withDelegate:self
    WithOptions:launchOptions clearCustomParams:NO];
    return YES;
    }

注: +(void)setAppKey:(NSString *)appKey withDelegate:(id)delegate WithOptions:(NSDictionary *)launchOptions clearCustomParams:(BOOL)customParams;@ customParams BOOl值 如只需在首次安装启动获取参数,可将customParams设置为YES,设置为NO,可重复获取。
3、个性化安装

3.1 如果只需要快速下载功能,无需其它功能(携带参数安装、渠道统计、一键拉起),完成初始化即可。

3.2 当应用安装后首次打开时,iOS sdk会收到网页端通过js sdk传来的自定义动态参数,精确的获取app每一次安装的分享(或推广)来源。比如通过在分享链接url中附带app邀请人的用户id,就可达到免填邀请码的效果;url中可拼接自定义的参数。在AppDelegate中,添加获取安装参数的回调方法,代码如下所示:
Object-C Swift
#pragma mark ShareInstallDelegate
//通过ShareInstall获取自定义参数,数据为空时也会调用此方法

  • (void)getInstallParamsFromSmartInstall:(id) params withError: (NSError *) error{
    NSLog(@“安装参数params=%@”,params);
    UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@“直接点击App进来的” message: params delegate:nil cancelButtonTitle:@“取消” otherButtonTitles:@“确定”, nil];
    //弹出提示框(便于调试,调试完成后删除此代码)
    [alert show];
    }
    3.3 用户也可在具体的业务场景需要参数的位置主动调用下面的方法获取参数。(根据业务场景来调用该api方法),调用getInstallCallBackBlock方法,获取自定义参数(可重复调用)。不要自行保存动态参数。

Object-C Swift
[[ShareInstallSDKgetInitializeInstance] getInstallCallBackBlock:^(NSString*jsonStr){
if(jsonStr){ //动态安装参数
//拿到参数,处理客户自己的逻辑
}
}];
注:客户可根据具体的业务场景,需要参数的位置调用该方法(在业务场景时,网络一般都是通畅的)。例如可选择在用户注册成功后调用该方法获取参数。原因是iOS首次安装、首次启动的app,会询问用户获取网络权限,用户允许后SDK才能正常联网去获取参数。如果调用过早,可能导致网络权限还未允许就被调用,导致参数无法及时拿到,误以为参数不存在。

4、一键拉起

4.1 ShareInstall通过标准的scheme、universal link等技术,在app安装的情况下,从各种浏览器(微信、QQ、新浪微博、钉钉等主流社交软件的内置浏览器)唤醒 app 并传递自定义参数,避免重复安装。

4.2 配置App的URL Scheme(适用于ios各个系统版本)

4.2.1 iOS系统中App之间是相互隔离的,通过URL Scheme,App之间可以相互调用,并且可以传递参数。
选中Target-Info-URL Types,配置URL Scheme。

注:identifier 要一定配置为 com.ShareInstall,URL Schemes从shareInstall获取()。

在Safari中输入URL Scheme 😕/ ,如果可以唤起App,说明URL Scheme配置成功。

4.2.2 在AppDelegate中添加 URL Scheme 回调方法,委托给ShareInstallSDK来处理
注意:当需要在shareInstall这个方法中处理第三方回调的时候(比如支付宝、微信回调等),请注意区分。

Object-C Swift
//iOS9以下 URL Scheme
-(BOOL)application:(UIApplication *)application openURL:(NSURL
*)url
sourceApplication:(NSString *)sourceApplication annotation:(id)annotation{

//判断是否通过ShareInstall URL Scheme 唤起App
if ([ShareInstallSDK handLinkURL:url]) {
return YES ;
}else{
//其他代码
return YES ;
}
return YES ;
}

//iOS9以上 URL Scheme

  • (BOOL)application:(UIApplication *)app openURL:(NSURL *)url
    options:(nonnull NSDictionary *)options
    {
    //判断是否通过ShareInstall URL Scheme 唤起App

if ([ShareInstallSDK handLinkURL:url]) {
return YES ;
}else{
//其他代码
return YES ;
}
return YES ;
}
4.2.3 在AppDeletegate中遵守协议,添加一键拉起的回调,获取来自 H5 页面的动态参数,根据参数值直达具体页。

Object-C Swift

  • (void)getWakeUpParamsFromSmartInstall: (id) params withError: (NSError *) error{
    NSLog(@“唤醒参数params=%@”,params);
    UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@“URL shceme 进来的” message: params delegate:nil cancelButtonTitle:@“取消” otherButtonTitles:@“确定”, nil];
    //弹出提示框(便于调试,调试完成后删除此代码)
    [alert show];
    }
    4.3 配置Universal link(通用链接),只适用于ios9.0以上。

4.3.1 Universal link是ios9的一个新特性,通过Universal link实现一键直达。如果使用URL Scheme的话,需要先打开Safari,用户体验变得很差。如果未安装app,还会出现下面错误的对话框:

所以为了用户更好的体验,我们强烈推荐配置Universal link。

4.3.2 配置developer.apple.com的相关信息
登录 https://developer.apple.com,选择Certificate, Identifiers & Profiles,选择相应的AppID,开启Associated Domains服务。

4.3.3 配置Xcode

在Xcode中配置ShareInstall为当前应用生成的关联域名:Associated Domains 开关打开,添加Domains:

在AppDelegate中添加通用链接(Universal Link)回调方法,委托给 ShareinstallSDK 来处理。

Object-C Swift
//Universal Links 通用链接
- (BOOL)application:(UIApplication *)application
continueUserActivity:(NSUserActivity
*)userActivity restorationHandler:(void (^)(NSArray *
_Nullable))restorationHandler
{
//判断是否通过ShareInstall Universal Links 唤起App
if ([ShareInstallSDK continueUserActivity:userActivity]) {
return YES ;
}else{
//其他代码
return YES ;
}
}
在AppDeletegate中遵守协议,添加一键拉起的回调,获取来自 H5 页面的动态参数,根据参数值直达具体页。

Object-C Swift

  • (void)getWakeUpParamsFromSmartInstall: (id) params withError: (NSError *) error{
    NSLog(@“唤醒参数params=%@”,params);
    UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@“URL shceme 进来的” message: params delegate:nil cancelButtonTitle:@“取消” otherButtonTitles:@“确定”, nil];
    //弹出提示框(便于调试,调试完成后删除此代码)
    [alert show];
    }
    5、注册量统计

使用Shareinstall控制中心提供的渠道统计时,在App用户注册完成后调用,可以统计渠道注册量。 必须在注册成功的时调用方法,否则可能导致注册统计不准。

Object-C Swift
[ShareInstallSDK reportRegister];

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!