shareinstall之IOS集成

提示:以下代码(配置)由shareinstall根据当前应用动态生成,开发者可直接使用;按照以下步骤指引,10分钟即可完成IOS SDK集成。
一、产品原理
精确的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的相应页面。
二、iOS SDK集成
1、导入SDK

iOS SDK 下载 v1.0.6 http://api.shareinstall.com/download/1.0.6/ios

iOS DEMO 下载 v1.0.6 http://api.shareinstall.com/download/1.0.6/iosdemo

下载并解压最新版SDK压缩包,将libShareInstall.a和ShareInstallSDK.h导入工程中。
2、初始化SDK
在AppDelegate中,增加头文件的引用:

#import “ShareInstallSDK.h”

在-(BOOL)application:(UIApplication)application didFinishLaunchingWithOptions:(NSDictionary )launchOptions
方法中调用setAppKey方法来初始化SDK,如下代码所示:

  • (BOOL)application:(UIApplication )application didFinishLaunchingWithOptions:(NSDictionary )launchOptions {
    [ShareInstallSDK setAppKey:@"K2BK7B6HH7F7R2" withDelegate:self WithOptions:launchOptions];
    return YES;
    }

注:AppKey需填写自己的AppKey,请到ShareInstall官网后台查看自己应用的AppKey。
3、个性化安装
当应用安装后首次打开时,iOS sdk会收到网页端通过js sdk传来的自定义动态参数,精确的获取app每一次安装的分享(或推广)来源。比如通过在分享链接url中附带app邀请人的用户id,就可达到免填邀请码的效果;url中可拼接自定义的参数。在AppDelegate中,添加获取安装参数的回调方法,代码如下所示:

#pragma mark ShareInstallDelegate
//通过ShareInstall获取自定义参数,数据为空时也会调用此方法

  • (void)getInstallParamsFromSmartInstall:(id) params withError: (NSError ) error{br/>NSLog(@"安装参数params=%@",params);
    UIAlertView
    alert = [[UIAlertView alloc] initWithTitle:@"直接点击App进来的" message:[self DataTOjsonString:params] delegate:nil cancelButtonTitle:@"取消" otherButtonTitles:@"确定", nil];
    //弹出提示框(便于调试,调试完成后删除此代码)
    [alert show];
    }

4、一键跳转
ShareInstall通过标准的scheme、universal link等技术,在app安装的情况下,从各种浏览器(微信、QQ、新浪微博、钉钉等主流社交软件的内置浏览器)唤醒 app 并传递自定义参数,避免重复安装。
5、 universal link 配置
Universal link是iOS9的一个新特性,通过Universal link,App可以通过各种浏览器跳转到App(例如微信内可不通过safari,一键跳转到App),真正实现一键跳转到相应界面。
备注:iOS9以上推荐使用Universal link。
5.1 配置developer.apple.com的相关信息
到苹果开发者中心,为当前的App ID开启Associated Domains服务:

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

在AppDelegate中的continueUserActivity方法中调用,用来处理Universal link。

//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;
    }
    }

5.3 配置App的URL Scheme
iOS系统中App之间是相互隔离的,通过URL Scheme, App之间可以相互调用,并且可以传递参数。
备注:iOS9以下通过Url Scheme实现拉起。
5.4 在Xcode里选中Target—Info—URL Types, 配置shareInstall为当前应用生成的Url Scheme,如图所示:
identifier 配置为 com.ShareInstall,URL Schemes从shareInstall获取(afap0343)。
注:identifier 一定要配置为com.ShareInstall

5.5 URL Scheme相关代码配置
注意:当需要在shareInstall这个方法中处理第三方回调的时候(比如支付宝、微信回调等),请注意区分。

//iOS9以下 URI 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;
    }

5.6获取唤醒参数,直达具体页
通过在url中附带具体的参数,唤醒app并跳转到具体页。

5.7 其他代码配置
如果做测试,获取参数,则必须在Appdelegate.h加上如下测试代码。

#pragma mark 将oc数据类型转成NSString
-(NSString *)DataTOjsonString:(id)object
{
if (!object) {
return nil;
}

NSString *jsonString = nil;
NSError *error;
NSData *jsonData = [NSJSONSerialization dataWithJSONObject:object
                                                   options:NSJSONWritingPrettyPrinted
                                                     error:&error];
if (! jsonData) {
    NSLog(@"Got an error: %@", error);
} else {

jsonString = [[NSString alloc] initWithData:jsonData encoding:NSUTF8StringEncoding];
}
return jsonString;
}

6、注册量统计
使用Shareinstall 控制中心提供的渠道统计时,在App用户注册完成后调用,可以统计渠道注册量。
#warning 必须在注册成功的时调用[ShareInstallSDK reportRegister] 方法,否则可能导致注册统计不准。
下一步

shareinstall之IOS集成

原文地址:http://blog.51cto.com/13877376/2147074

时间: 2024-10-11 13:22:43

shareinstall之IOS集成的相关文章

无处不在,详解iOS集成第三方登录(SSO授权登录<无需密码>)

1.前言 不多说,第三登录无处不在!必备技能,今天以新浪微博为例. 这是上次写的iOS第三方社交分享:http://www.cnblogs.com/qingche/p/3727559.html 可以和今天的一起集成使用. 2.集成前的准备工作 2.1.去ShareSDK(现为Mob)注册帐号,下载SDK,然后添加自己的应用后得到AppKey 下载地址:http://sharesdk.cn/Download 2.2.申请第三方登录的Appkey 例如: 新浪微博.腾讯微博.QQ.微信.豆瓣应用.人

iOS 集成银联支付(绕过文档的坑,快速集成)

iOS 集成银联支付(绕过文档的坑,快速集成) 本文是投稿文章,作者:南栀倾寒当初集成支付宝的时候,觉得见了这么丑的代码,加上这么难找的下载地址,在配上几乎为零的文档,寒哥就要吐血了. 下午去集成银联,才知道血吐的早了. 下载地址:https://open.unionpay.com/upload/download/Development_kit85427986.rar 其实我找了半个小时 也不知道怎么就下载好了 这个我在Chrome的下载记录里找到的 解压之后会有这样的目录结构 Paste_Im

iOS集成支付宝

需要企业和支付宝签约这个是需要审核的[3天左右   以邮件形式告知你] 使用支付宝进行一个完整的支付功能,大致有以下步骤: 1>先与支付宝签约,获得商户ID(partner)和账号ID(seller) (这个主要是公司的负责) 2>下载相应的公钥私钥文件(加密签名用) 3>下载支付宝SDK(登录网站:http://club.alipay.com/)里面提供了非常详细的文档.如何签约.如何获得公钥私钥.如何调用支付接口. 4>生成订单信息 5>调用支付宝客户端,由支付宝客户端跟

iOS- 无处不在,详解iOS集成第三方登录(SSO授权登录<无需密码>)

1.前言 不多说,第三登录无处不在!必备技能,今天以新浪微博为例. 这是上次写的iOS第三方社交分享:http://www.cnblogs.com/qingche/p/3727559.html 可以和今天的一起集成使用. 2.集成前的准备工作 2.1.去ShareSDK(现为Mob)注册帐号,下载SDK,然后添加自己的应用后得到AppKey 下载地址:http://sharesdk.cn/Download 2.2.申请第三方登录的Appkey 例如: 新浪微博.腾讯微博.QQ.微信.豆瓣应用.人

iOS集成极光推送

iOS集成极光推送 一.配置APNs 苹果APNs(英文全称:Apple Push Notification Service) 1.配置开发证书 ![Uploading apns_13_803165.png -] 2.配置生产证书 和配置开发证书的流程相同. 3.将配置好的证书导出为 .p12 文件 一.注册极光推送帐号 可登录 极光推送官网 注册帐号. 注册成功后进入控制台 二.集成极光推送SDK sdk地址 我使用的是JPush-iOS-SDK-2.1.0.下载的文件里有个pdf文件iOS+

iOS 集成百度地图 位置偏移问题

iOS 集成百度SDK 请参考 百度地图官方文档 ,这里不就多啰嗦了 本文介绍的是在百度地图上根据经纬度,自定义气泡时,气泡位置的偏移,在我们天朝这种事是很常见的,也见怪不怪了,在项目中使用的百度地图的SDK,位置各种不对,百度地图和其他地图,如高德,他们都有自己的偏移算法,网上也有很多譬如 火星坐标转换之类的,都不能达到准备显示的效果. 其实百度SDK 有他自己偏移算法,使用百度偏移转换就可以了 BMKPointAnnotation *annotation = [[BMKPointAnnota

iOS集成alipay无线应用sdk错误问题

今天下载alipay无线应用sdk,首选感觉:我靠,藏的真深!下载后commad+R发现报错了.具体错误信息如图: 解决办法是将library search paths 里面的东西去掉所有的\\\  坑爹啊!如图: iOS集成alipay无线应用sdk错误问题

IOS:IOS集成开发和环境的介绍

集成开发环境的介绍 Xcode :iOS集成开发环境,也是编辑器,负责管理应用程序工程. Interface Builder:快速原型开发工具,可视化的组装用户UI接口的工具,在 Xcode 4.0以后集成到了Xcode中. Instruments:功能强大的性能调试工具,以及内存分析工具. iPhone Simulator:Mac OS X平台应用程序,它是模拟应用程序在真机上运行的 一个环境,但是并不能完全模拟所有功能. iOS SDK:iOS软件开发工具包

驰骋工作流引擎-CCMobile与安卓、IOS集成过程中的问题与解决方案

CCMobile与安卓.IOS集成过程中的问题与解决方案 前言: CCMobile(2019版本)是CCFlow&JFlow 的一款移动端审批的产品.系统基于mui框架开发,是一款可以兼容Android与IOS的移动端工作流审批系统.由于CCMobile仅仅局限于移动端的流程审批,所以在其他办公功能方面很少,这时可能就需要在源码上开发或者与其他APP进行集成. 由于Mui是一款h5的框架,并不是原生的,所以在与原生APP集成时,会出现一些问题,主要集中在附件上传下载.屏幕兼容等.本文章,将具体描