iOS/H5混合 SDK 集成文档
优质
小牛编辑
134浏览
2023-12-01
iOS /H5 混合SDK
导入SDK
导入iOS的SDK。(与编程模式导入方法相同)
SDK初始化
将下载得到的 AdhocSDK.framework 拖入到xcode工程里,集成方法与SDK集成相同
注:请不要延迟SDK的初始化,会导致无法监听到AppDelegate里的方法,无法加载Flags信息,可视化试验无法正常渲染。
请勿在SDK基础上进行自行封装,以免影响到试验逻辑,造成试验无法正常运行。
调用SDK
(1).在在调用UIWebview的控制器.M文件中,添加UIWebview的代理方法
@interface AdhocUIWebViewVC () <UIWebViewDelegate>
在调用UIWebview的控制器页面添加如下代码
- (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType {
//将js代码注入到UIWebView中
BOOL b = [AdhocSDK adhocUIWebViewExecute:request webView:webView];
if (!b) {
return YES;
}
else {
return NO;
}
}
(2).如果使用WKWebview请检查 TARGETS--> Build Phases --> Link Binary With Libraries 选项下是否已经加入 AdhocSDK.framework,如果没有,请手动加入。并手动链接webkit.framework
在调用WKWebview的控制器.M文件中,添加WKWebview的代理方法
<WKNavigationDelegate,WKUIDelegate>()
在调用WKWebview的控制器页面添加如下代码
- (void)webView:(WKWebView *)webView decidePolicyForNavigationAction:(WKNavigationAction *)navigationAction decisionHandler:(void (^)(WKNavigationActionPolicy))decisionHandler {
//将js代码注入到WKWebView中
[AdhocSDK adhocWKWebViewExecute:navigationAction.request webView:webView];
decisionHandler(WKNavigationActionPolicyAllow);
}
设置变量值
在参加试验的web页面下添加如下方法
function applyFlag1(flag_value) {
if (flag_value == 1) {
//我是试验版
} else {
//我是原始版
}
}
再在触发逻辑中添加如下代码(其中test1_1为本次试验的变量名称,0为该变量的默认值用于缺省状况)。
onclick="AdhocHybrid.getFlag('test1_1', 0, 'applyFlag1')"
注意applyFlag1函数名称必须保持一致
上报指标
在点击事件的触发条件div或者a后面添加如下代码(其中test1_zb为指标名称)。
onclick="AdhocHybrid.track('test1_zb', 1)"
注意:确保app_key, 试验变量字符串,指标字符串与后台截图处一一对应,否则可能出现异常或无试验数据情况。