8

请帮我解决这个问题。我正在使用 webview。我面临两个问题:

  1. 当 webview 加载新页面时。不调用 onPageStarted 方法,但调用 onPageFinished 方法。
  2. 方法 :mWebView.canGoBack() 总是返回 false。

如果您知道原因或有任何建议,请帮助我。注意:我正在使用:服务器端(Web 端)的 Jquery Mobile。

这些是我的 Webview 客户端和 Webview 初始化源代码。

    private class MyWebViewClient extends WebViewClient{

    private static final String TAG = "MyWebViewClient";


    @Override
    public void onPageFinished(WebView view, String url) {
        super.onPageFinished(view, url);
        Log.v(TAG, "onPageFinished url: " + url);

    }

    @Override
    public void onLoadResource(WebView view, String url){
        Log.v(TAG, "onLoadResource url: " + url);
    }

    @Override
    public void onPageStarted(WebView view, String url, Bitmap favicon) {
        super.onPageStarted(view, url, favicon);
        Log.v(TAG, "onPageStarted url: " + url);

    }

    @Override
    public void onReceivedError(WebView view, int errorCode,
            String description, String failingUrl) {
        super.onReceivedError(view, errorCode, description, failingUrl);
        Log.v(TAG, "onReceivedError url: " + failingUrl);

    }


    @Override
    public boolean shouldOverrideUrlLoading(WebView view, String url) {
        Log.v(TAG, "shouldOverrideUrlLoading : " + url);

        return false;
    }

}

这是我的 webview 初始化:

            mWebView =  new WebView(getActivity());
        mWebView.setWebViewClient(new MyWebViewClient());
        WebSettings webSettings = mWebView.getSettings();
        webSettings.setJavaScriptEnabled(true);

        String link = getArguments().getString(PARAMETER_LINK);
        boolean deleteWVData = getArguments().getBoolean(PARAMETER_DELETE_DATA);
        if(deleteWVData)
            mWebView.clearCache(true);
4

3 回答 3

2

我相信只有在加载onPageStarted页面时才会调用。Egg 你在 index.html 上并导航到 contact.html

大多数移动框架(如 jquery mobile、ionic、angualar)将停留在 index.html 页面上并且只修改内容。因此,不会调用 onPageStarted,但会调用 onPageFinished

于 2015-11-06T12:13:48.027 回答
0

index.html#xxxxxxx index.html#aaaaaa

被 webview 认为是相同的,在这种情况下,onPageStarted 不会被调用

于 2016-12-30T12:03:36.070 回答
0

更新 webview 并检查。

当webview的当前版本是60.0.3112.107而手机中的版本是57.x.xxxx.xxx时,我遇到了这个问题

于 2017-09-01T11:31:24.567 回答