iOS Hybrid SDK 使用说明

1. 基本配置

iOS App 中如需加载 H5 页面,可在 H5 页面中以如下方式集成AnalysysAgent_Hybrid_JS_SDK

1.1 集成 iOS SDK

集成方式查看iOS SDK 使用说明

1.2 配置JS SDK

JS SDK 地址为: https://ark.analysys.cn/sdk/v2/analysys_Hybird_v4.0.6_20180823.zip,请在接入JS SDK时更改为实际 JS SDK 地址

将以下JS代码复制到您所需分析页面中的<head></head>标签之间。

<script>
    (function(config) {
        window.AnalysysAgent = window.AnalysysAgent || []
        window.AnalysysAgent.methods = 'identify alias reset track profileSet profileSetOnce profileIncrement profileAppend profileUnset profileDelete registerSuperProperty registerSuperProperties unRegisterSuperProperty clearSuperProperties getSuperProperty getSuperProperties pageView debugMode auto appkey name uploadURL hash visitorConfigURL autoProfile autoWebstay'.split(' ');

        function factory(b) {
            return function() {
                var a = Array.prototype.slice.call(arguments);
                a.unshift(b);
                window.AnalysysAgent.push(a);
                return window.AnalysysAgent;
            }
        };
        for (var i = 0; i < AnalysysAgent.methods.length; i++) {
            var key = window.AnalysysAgent.methods[i];
            AnalysysAgent[key] = factory(key);
        }
        for (var key in config) {
            AnalysysAgent[key](config[key])
        }
        var date = new Date();
        var time = new String(date.getFullYear()) + new String(date.getMonth() + 1) + new String(date.getDate());

        var d = document,
            c = d.createElement('script'),
            n = d.getElementsByTagName('script')[0];
        c.type = 'text/javascript';
        c.async = true;
        c.id = 'devSDK';
        c.src = window.location.protocol+'//sdk.analysys.cn/AnalysysAgent_Hybrid_JS_SDK.min.js?' + time //PAAS JS SDK地址
        n.parentNode.insertBefore(c, n);
    })({
        appkey: '' //APPKEY
    })
</script>

2. 代码集成

2.1 SDK监听拦截URL

H5 页面触发事件时,会把事件发往 iOS App 端,App SDK 端接收到数据后保存并上报。 接口如下:

+ (BOOL)setHybridModel:(id)webView request:(NSURLRequest *)request;
  • webView: UIWebViewWKWebView对象
  • request: NSURLRequest请求对象
  • return: 若 js 触发的是 AnalysysAgent 的事件,则setHybridModel:request:方法会返回 YES,完成统计;否则返回 NO,不处理。

示例:

2.1.1 UIWebView

实现UIWebViewUIWebViewDelegate方法,并调用统计接口。

- (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType {

    if ([AnalysysAgent setHybridModel:webView request:request]) {
        NSLog(@"AnalysysAgent 统计完成");
        return NO;
    }

    return YES;
}

2.1.2 WKWebView

实现WKWebViewWKNavigationDelegate代理方法,并调用统计接口。

- (void)webView:(WKWebView *)webView decidePolicyForNavigationAction:(WKNavigationAction *)navigationAction decisionHandler:(void (^)(WKNavigationActionPolicy))decisionHandler {

    if ([AnalysysAgent setHybridModel:webView request:navigationAction.request]) {
        NSLog(@"AnalysysAgent 统计完成");
        decisionHandler(WKNavigationActionPolicyCancel);
        return;
    }

    decisionHandler(WKNavigationActionPolicyAllow);
}

2.2 重置UserAgent

UIWebView/WKWebView结束使用、置为nil或加载UIWebView/WKWebView的页面dealloc时调用。 接口如下:

+ (void)resetHybridModel;

示例:

-(void)dealloc {
    [AnalysysAgent resetHybridModel];
}

3 接口介绍

3.1 iOS 接口

iOS SDK 使用说明中的接口介绍相同。

3.2 JS SDK 接口

JS SDK 使用说明中的接口介绍相同。

Copyright © 2018 易观版权所有 京ICP备15065619号-1 京公网安备110105005360号            updated 2018-12-13 19:10:41

results matching ""

    No results matching ""