WebView不会运行PIWIK跟踪JS

时间:2016-01-23 18:46:56

标签: android webview matomo

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

以下是我的代码:

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);
}

}

跟踪代码托管在外部域中。

1 个答案:

答案 0 :(得分:0)

终于找到了答案。我必须通过我的LogCat查找并找到一条没有标记为错误的行:

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

进行了一些研究以确保我是对的,然后运行我的网站,通过SSLLabs托管我的分析软件(PIWIK),并发现证书链不完整。更新了我网站上的证书链,并且bam ..开始跟踪。

伙计,我花了几个小时做一些如此愚蠢的事情!