2016-01-23 43 views
2

我使用我的另一个应用程序使用的代码创建了一个Android应用程序。当人们使用该应用程序时,PIWIK跟踪JS将无法运行。如果您访问该网站,它会跟踪罚款(JS跟踪器是网页上的JS标签)。如果您使用该应用程序,则不会跟踪该访问。我启用了JS,并且从应用程序工作正常的地方复制了代码。这两个应用程序唯一的区别在于SDK目标版本。WebView不会运行PIWIK跟踪JS

这里是我下面的代码:

public class ZestyView extends Activity { 

final Activity activity = this; 
WebView myWebView; 

public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_zestyview); 
    myWebView = (WebView) findViewById(R.id.webview); 
    myWebView.getSettings().setJavaScriptEnabled(true); 
    myWebView.setWebViewClient(new MyWebViewClient()); 
    myWebView.getSettings().setBuiltInZoomControls(true); 
    myWebView.getSettings().setLoadWithOverviewMode(true); 
    myWebView.getSettings().setUseWideViewPort(true); 
    Toast.makeText(getApplicationContext(), "Page is loading... Please wait!", Toast.LENGTH_LONG).show(); 
    myWebView.loadUrl("https://zestysaver.com/?pk_campaign=App&pk_kwd=Android"); 
} 


private class MyWebViewClient extends WebViewClient { 


    public boolean shouldOverrideUrlLoading(WebView view, String url) { 
     if (Uri.parse(url).getHost().equals("zestysaver.com")) { 
      Log.e("url", Uri.parse(url).getHost()); 
      return false; 
     } 
     // Otherwise, give the default behavior (open in browser) 
     Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse(url)); 
     startActivity(intent); 
     return true; 
    } 
} 
@Override 
public boolean onKeyDown(int keyCode, KeyEvent event) { 
    if ((keyCode == KeyEvent.KEYCODE_BACK) && myWebView.canGoBack()) { 
     myWebView.goBack(); 
     return true; 
    } 
    return super.onKeyDown(keyCode, event); 
} 

}

跟踪代码对外部域主办。

+0

你确定唯一的区别是API版本吗?和API版本是什么?你能否为你的问题添加尽可能多的细节? – 2016-01-25 19:55:44

+0

我想我使用了错误的术语 - Sdk版本就是我的意思。但据我所知,是的,这是唯一真正的区别。我也在使用Android Studio来构建它,就像我以前使用Eclipse一样,但这不应该有所作为,我不会这么想。 – alexander7567

+0

你可能想在你的问题中指定。 SDK版本,跟踪代码的位置,如何加载,协议以及哪些不是。事实上,我不希望得到答案。 – 2016-01-25 20:14:22

回答

0

终于找到了我的答案。我通过我的logcat看,发现没有标记为错误的行:

I/X509Util: Failed to validate the certificate chain, error: java.security.cert.CertPathValidatorException: Trust anchor for certification path not found. 

有没有研究,以确保我是对的,然后跑到我的网站承载我的分析软件的一点点(PIWIK )通过SSLLabs,发现证书链不完整。更新了我的网站上的证书链,并且bam ..开始跟踪。

男人,我花了几个小时在这么傻的东西!