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, 试验变量字符串,指标字符串与后台截图处一一对应,否则可能出现异常或无试验数据情况。