繁体   English   中英

iOS中的WebView中的Flurry Analytics

[英]Flurry Analytics in a WebView in iOS

在我的iOS应用程序中,我想使用Flurry分析。 在应用程序的屏幕之一上,有UIWebView。 该站点位于服务器上,但不在App代码中。 每次我加载该屏幕时,信息都会从服务器传到我的屏幕,一切正常。 WebView上有很多按钮,我想在按下按钮时对其进行跟踪。 如果按钮在App的代码中,我就读到了如何在应用的代码中实施波动分析,但是如果按钮在服务器端(html / css / JS),我不明白如何跟踪事件从应用程序的UIWebView到Flurry。

Flurry在写这个:

如果我的应用程序是我的移动网站的包装,是否可以使用Flurry Analytics跟踪事件(例如,按下按钮)? 这些操作在应用程序包装的站点服务器上进行。


是的,您可以跟踪这些事件。 如果您要跟踪的动作(例如,按下按钮)存在于应用程序代码中,则只需在应用程序端记录一个事件。 如果该按钮存在于Web视图中显示的移动网页上,则您需要注入Javascript函数,该函数将在按下按钮时触发其他自定义URL。 该URL将具有一个自定义方案,例如“ myapp:// buttonclicked”。 然后在应用程序代码中,您将需要在Web View触发之前捕获该URL。 当您看到该URL是您指定的URL(“ myapp:// ...”)时,可以在应用程序端记录一个事件。

在Web视图加载自定义URL之前,有几种捕获自定义URL的方法。 在iOS中,您需要实现UIWebViewDelegate方法webView:shouldStartLoadWithRequest:navigationType:。 在Android上,您可以使用shouldOverrideUrlLoading方法实现WebViewClient。

您可以通过委托方法轻松捕获webview事件

-(BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)请求导航类型:(UIWebViewNavigationType)navigationType

下面是我在应用程序中使用的示例代码:

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

    if([[[request URL] absoluteString] rangeOfString:@"payment_successful_mobile.php"].location != NSNotFound)
        return YES; 

    if([[[request URL] absoluteString] rangeOfString:@"index.php?file=c-my_campaingns"].location != NSNotFound)
    {
        [self onClickBackButton:nil];
        return NO;
    }
    if([[[request URL] absoluteString] rangeOfString:@"Timeout"].location != NSNotFound)
    {
        [self performSelectorOnMainThread:@selector(displayTimeOutMessage) withObject:nil waitUntilDone:NO];
        return NO;
    }
    return YES;
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM