项目背景:
通过研究试客小兵/钱咖 此类试玩平台,可以确定的是应用使用了苹果没有正式公开的私有API(此类API主要为苹果内部使用,app中使用不被审核上架,但是可以应用在企业级开发中)可以通过dump头文件获得但是没有相关使用文档说明,通过私有API可以获取手机中安装的全部应用的一些信息,例如应用的包名/名称/版本/开发者等隐私信息
通过研究私有API突破三个技术点
1.检测手机中是否安装所选app并进行指定跳转,以下方式可选
Øsafari中实现此功能
Ø原生应用内可以通过APP对应的打开协议URL Schemes判断是否安装此应用并进行跳转,URL Schemes通过广告主获取,此方法先用canOpenURL:方法先判断能否打开这个url,然后再用openURL方法打开,但是iOS9的时候苹果加强了权限,只有在info.plist文件中加入了URL Schemes白名单才能使用canOpenURL:该白名单的上限是50个。就是说我们最多只能使用canOpenURL:方法判断50个URL Schemes。
Øios9后苹果发布了新的API 通用链接(Universal Links)
Ø通过苹果私有API可以获取手机全部应用包名通过对比包名查看手机中是否安装此应用,若安装则通过私有方法借助包名跳转指定app。
2.App Store下载应用进度
通过私有API获取MobileCoreServices类下的installState方法监测到了App Store下载进度情况
3.应用下载完成后检测是否被打开
目前获取手机运行程序进程已被苹果禁用,现在还没找到解决方法,但可以通过其他方法替代,比如当检测到app下载完成后程序通过私用方法自动打开应用 或者弹窗提示用户点击打开app,在设置一个定时器指定一个时间段结束后给用户奖励。
其他技术...