2016-02-23 67 views
0

在我的iOS應用程序中,我想使用Flurry分析。在應用程序的屏幕上有UIWebView。該網站在服務器上,但不在App的代碼中。每當我加載該屏幕時,從服務器到我的屏幕以及所有內容的信息都可以。我的WebView上有很多按鈕,我想在按下時跟蹤它們。我讀到了如何在App的代碼中實現亂碼分析到App的代碼中,但如果按鈕位於服務器端(html/css/JS),我無法理解如何跟蹤事件從應用程序的UIWebView到Flurry。iOS中的WebView中的Flurry Analytics

Flurry is writing this:

我可以跟蹤與分析亂舞事件(例如,按下一個按鈕),如果我的應用程序是一個包裝到我的移動網站?這些操作發生在應用程序正在打包的站點服務器上。


是的,你可以跟蹤這些事件。如果您想要跟蹤的動作(例如按下按鈕)存在於應用程序代碼中,那麼只需在應用程序端登錄一個事件即可。如果該按鈕存在於Web視圖中顯示的移動網頁上,則需要注入一個Javascript函數,該按鈕在按下按鈕時將觸發額外的自定義URL。此網址將具有自定義方案,例如「myapp:// buttonclicked」。然後在應用程序代碼中,您需要在Web視圖觸發它之前捕獲該URL。當您看到該URL是您指定的URL(「myapp:// ...」)時,您可以在應用程序端記錄一個事件。

有幾種方法可以在Web視圖加載自定義URL之前捕獲該自定義URL。在iOS中,您需要實現UIWebViewDelegate方法webView:shouldStartLoadWithRequest:navigationType :.在Android上,您可以使用shouldOverrideUrlLoading方法實現WebViewClient。

+0

歡迎來到Stack Overflow。只是爲了讓你知道,你的問題並不能提供足夠的細節。至少,你應該提供一個相關的樣本或你有兩個代碼。我邀請您瀏覽該網站,瞭解所問的各種問題,然後返回並添加相關詳細信息。 – McMath

回答

0

,你可以很容易地通過一個委託方法追趕的WebView事件

- (BOOL)webView的:(UIWebView的*)webView的shouldStartLoadWithRequest:(的NSURLRequest *)要求 navigationType:(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; 
} 
+0

D我需要改變服務器上的東西?因爲亂七八糟的是寫作,我需要做一些Javascript功能,當按下按鈕時會觸發額外的自定義URL。 – Alex

+0

我認爲不需要在日誌中進行更改,只需在上面的代理中添加一個日誌,並觀察每個按鈕上單擊的加載的URL –

相關問題