OpenInstallSDK.h 7.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200
  1. //
  2. // OpenInstallSDK.h
  3. // OpenInstallSDK
  4. //
  5. // Created by toby on 16/8/11.
  6. // Copyright © 2016年 toby. All rights reserved.
  7. //
  8. #import <Foundation/Foundation.h>
  9. #import "OpeninstallData.h"
  10. @protocol OpenInstallDelegate<NSObject>
  11. @optional
  12. #pragma mark - 推荐使用最新API:<code>getInstallParmsCompleted</code>
  13. /**
  14. * 安装时获取h5页面动态参数(如果是渠道链接,渠道编号会一起返回)
  15. * @param params 动态参数
  16. * @param error 错误回调
  17. * @discussion 老版本sdk升级过来可延用该api
  18. */
  19. - (void)getInstallParamsFromOpenInstall:(nullable NSDictionary *)params withError:(nullable NSError *)error __deprecated_msg("Deprecated func,请使用方法<code>getInstallParmsCompleted</code>");
  20. ///----------------------
  21. /// @name 一键拉起的回调方法
  22. ///----------------------
  23. #pragma mark - 推荐使用最新API:<code>getWakeUpParams</code>
  24. /**
  25. * 唤醒时获取h5页面动态参数(如果是渠道链接,渠道编号会一起返回)
  26. * @param params 动态参数
  27. * @param error 错误回调
  28. * @discussion 老版本sdk升级过来可延用该api
  29. */
  30. - (void)getWakeUpParamsFromOpenInstall:(nullable NSDictionary *)params withError:(nullable NSError *)error __deprecated_msg("Deprecated func,请使用方法<code>getWakeUpParams</code>");
  31. #pragma mark - add in v2.2.0
  32. /**
  33. * 唤醒时获取h5页面动态参数(如果是渠道链接,渠道编号会一起返回)
  34. * @param appData 动态参数对象
  35. */
  36. - (void)getWakeUpParams:(nullable OpeninstallData *)appData;
  37. @end
  38. @interface OpenInstallSDK : NSObject
  39. /**
  40. * 获取sdk当前版本号,add in v2.2.1
  41. */
  42. + (NSString *_Nullable)sdkVersion;
  43. /**
  44. * SDK单例,returns a previously instantiated singleton instance of the API.
  45. */
  46. +(instancetype _Nullable)defaultManager;
  47. ///-------------
  48. /// @name 初始化
  49. ///-------------
  50. #pragma mark - added in v2.2.0 请在Info.plist中配置应用的appkey
  51. /**
  52. * 初始化OpenInstall SDK
  53. * ***调用该方法前,需在Info.plist文件中配置键值对,键为com.openinstall.APP_KEY不能修改,值为相应的应用的appKey,可在openinstall官方后台查看***
  54. <key>com.openinstall.APP_KEY</key>
  55. <string>你的appKey</string>
  56. * @param delegate 委托方法所在的类的对象
  57. */
  58. +(void)initWithDelegate:(id<OpenInstallDelegate> _Nonnull)delegate;
  59. #pragma mark - added in v2.4.0
  60. /**
  61. * 初始化sdk并传入广告标识符id(可选)
  62. * ***调用该方法前,需在Info.plist文件中配置键值对,键为com.openinstall.APP_KEY不能修改,值为相应的应用的appKey,可在openinstall官方后台查看***
  63. *
  64. * @param adid 广告标识符,需用户自己获取并传入,默认为空,传入nil则与初始化方法 initwithDelegate: 一致
  65. * @param delegate 委托方法所在的类的对象
  66. * @discussion 1、只有需要使用“广告平台渠道”进行广告效果监测的用户才需调用,2、需开启后台开关,位置:"iOS集成"->"iOS应用配置"->"广告平台对接"
  67. * ***详细文档请查看:***
  68. */
  69. + (void)initWithDelegate:(nullable id<OpenInstallDelegate>)delegate advertisingId:(NSString *_Nullable)adid;
  70. #pragma mark - Deprecated in v2.2.0(已废弃)
  71. /**
  72. * 初始化OpenInstall SDK (已废弃,请参考方法 initwithDelegate: 已使用该初始化方法的用户也可继续使用)
  73. *
  74. * @param appKey 控制中心创建应用获取appKey
  75. * @param delegate 委托方法(getInstallParamsFromOpenInstall和 getWakeUpParamsFromOpenInstall)所在的类的对象
  76. * @discussion 老版本sdk升级过来可延用该api
  77. */
  78. +(void)setAppKey:(nonnull NSString *)appKey withDelegate:(nullable id<OpenInstallDelegate>)delegate __deprecated_msg("Deprecated in v2.2.0,请参考方法<code>initwithDelegate</code>");
  79. ///----------------------
  80. /// @name 获取安装的动态参数
  81. ///----------------------
  82. #pragma mark - added in v2.2.0
  83. /**
  84. * 开发者在需要获取用户安装app后由web网页传递过来的”动态参数“(如邀请码、游戏房间号,渠道编号等)时调用该方法,可第一时间返回数据,可在任意位置调用
  85. *
  86. * v2.2.1后默认回调超时时长由5秒(s)修改为为8秒(s),如无特殊需求,请用此方法,否则可使用高级API
  87. *
  88. * @param completedBlock 回调block,在主线程(UI线程)回调
  89. *
  90. * @discussion
  91. 1、不要自己保存动态安装参数,在每次需要用到参数时,请调用该方法去获取;
  92. 2、该方法默认超时为8秒,尽量写在业务场景需要参数的位置调用(在业务场景时,网络一般都是畅通的),例如,可以选择在用户注册成功后调用该方法获取参数,对用户进行奖励。原因是iOS首次安装、首次启动的app,会询问用户获取网络权限,用户允许后SDK才能正常联网去获取参数。如果调用过早,可能导致网络权限还未允许就被调用,导致参数无法及时拿到,误以为参数不存在(此时getInstallParmsCompleted法已超时,回调返回空);
  93. 3. 如果是业务需要,必须在application:didFinishLaunchingWithOptions方法中获取参数,可调用下面高级API,修改超时时长,比如15秒或更长,如果只是拿参数在后台“悄悄地”进行数据统计的情况,超时时长设置为半个小时或更长都是ok的,根据需要来。
  94. * ***该方法可重复获取参数,如需在首次安装才获取安装参数,请自行判断,参考https://www.openinstall.io/doc/ios_sdk_faq.html***
  95. */
  96. -(void)getInstallParmsCompleted:(void (^_Nullable)(OpeninstallData*_Nullable appData))completedBlock;
  97. /**
  98. * 开发者在需要获取用户安装app后由web网页传递过来的”动态参数“(如邀请码、游戏房间号,渠道编号等)时调用该方法,可第一时间返回数据,可在任意位置调用
  99. *
  100. * @param timeoutInterval 可设置回调超时时长,单位秒(s)
  101. * @param completedBlock 回调block,在主线程(UI线程)回调
  102. *
  103. * @discussion
  104. * ***开发者不要自行保存参数!!!如果获取动态参数成功,SDK会把参数保存在本地***
  105. * ***该方法可重复获取参数,如需在首次安装才获取安装参数,请自行判断,参考https://www.openinstall.io/doc/ios_sdk_faq.html***
  106. */
  107. -(void)getInstallParmsWithTimeoutInterval:(NSTimeInterval)timeoutInterval
  108. completed:(void (^_Nullable)(OpeninstallData*_Nullable appData))completedBlock;
  109. #pragma mark - Deprecated in v2.1.1(已废弃)
  110. /**
  111. * 开发者直接获取动态参数,初始化之后调用(参数的正常获取时间1-2秒内)
  112. * @return NSDictionary
  113. */
  114. +(NSDictionary *_Nullable)getOpenInstallParams __deprecated_msg("Deprecated in v2.1.1,请参考方法<code>getInstallParmsCompleted</code>");
  115. ///---------------------
  116. /// @name 一键拉起回调处理
  117. ///---------------------
  118. /**
  119. * 处理 URI schemes
  120. * @param URL 系统回调传回的URL
  121. * @return bool URL是否被OpenInstall识别
  122. */
  123. +(BOOL)handLinkURL:(NSURL *_Nullable)URL;
  124. /**
  125. * 处理 通用链接
  126. * @param userActivity 存储了页面信息,包括url
  127. * @return bool URL是否被OpenInstall识别
  128. */
  129. +(BOOL)continueUserActivity:(NSUserActivity *_Nullable)userActivity;
  130. ///--------------
  131. /// @name 统计相关
  132. ///--------------
  133. /**
  134. * 注册量统计
  135. *
  136. * 使用openinstall 控制中心提供的渠道统计时,在App用户注册完成后调用,可以统计渠道注册量。
  137. * 必须在注册成功的时再调用该方法,避免重复调用,否则可能导致注册统计不准
  138. */
  139. +(void)reportRegister;
  140. #pragma mark - added in v2.2.0
  141. /**
  142. * 渠道效果统计
  143. *
  144. * 目前SDK采用定时上报策略,时间间隔由服务器控制
  145. * e.g.可统计用户支付消费情况,点击次数等
  146. *
  147. * @param effectID 效果点ID
  148. * @param effectValue 效果点值(如果是人民币金额,请以分为计量单位)
  149. */
  150. -(void)reportEffectPoint:(NSString *_Nonnull)effectID effectValue:(long)effectValue;
  151. @end