Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/assembly/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
WebView未在Android 4.4+;_Android_Cookies_Webview_Android Webview - Fatal编程技术网

WebView未在Android 4.4+;

WebView未在Android 4.4+;,android,cookies,webview,android-webview,Android,Cookies,Webview,Android Webview,我对WebView有一个问题,一个链接只是加载到WebView中,但它不起作用 相同的URL在安卓操作系统的4.1、4.2、4.2.2和4.3版本中运行良好,但在4.4及以上版本中不起作用 Url是 这意味着它在Kitkat、棒棒糖或棉花糖中不起作用 我认为这是一个cookies问题,但我已在WebView中启用cookies,但无法解决此问题 同一个URL在Chrome和另一个浏览器中工作得很好,但它没有在默认WebView中加载 如果有人有解决办法,请告诉我 这是我的密码: package

我对
WebView
有一个问题,一个链接只是加载到
WebView
中,但它不起作用

相同的
URL
在安卓操作系统的4.1、4.2、4.2.2和4.3版本中运行良好,但在4.4及以上版本中不起作用

Url

这意味着它在Kitkat、棒棒糖或棉花糖中不起作用

我认为这是一个cookies问题,但我已在
WebView
中启用cookies,但无法解决此问题

同一个
URL
在Chrome和另一个浏览器中工作得很好,但它没有在默认
WebView
中加载

如果有人有解决办法,请告诉我

这是我的密码:

package com.avm.ui;

import org.apache.http.cookie.Cookie;
import org.apache.http.impl.client.DefaultHttpClient;

import android.content.Intent;
import android.graphics.Bitmap;
import android.graphics.Color;
import android.os.Build;
import android.os.Bundle;
import android.webkit.CookieManager;
import android.webkit.CookieSyncManager;
import android.webkit.WebSettings;
import android.webkit.WebSettings.PluginState;
import android.webkit.WebSettings.RenderPriority;
import android.webkit.WebView;
import android.webkit.WebViewClient;

import com.avm.uc.CustAnimatedActivity;
import com.avm.uc.CustomProgressBarDialog;
import com.avm.uc.Header;
import com.avm.util.Config;
import com.avm.util.Pref;
import com.avm.util.Utils;
import com.esp.therisemethod.R;

public class EvaluateYourSelfEsteemActivity extends CustAnimatedActivity {

    /* Declaration of variable here */

    private Header header;
    private WebView webView;
    private CustomProgressBarDialog mProgressDialog;
    private int flag;
    private DefaultHttpClient httpClient;
    public static Cookie cookie = null;

    // Flag 1=for EvaluateYourSelfEsteem
    // Flag 2=for Faq

    @SuppressWarnings("deprecation")
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        setContentView(R.layout.activity_common_webview);
        flag = getIntent().getIntExtra("FLAG", 0);
        Utils.addActivities(EvaluateYourSelfEsteemActivity.this);

        /* fetch object resource here */

        header = (Header) findViewById(R.id.header);
        /* setValue in Header */
        if (flag == 1) {
            header.txtTitle.setText(getResources().getString(
                    R.string.RATE_YOUR_SELF_ESTEEM));
        } else if (flag == 2) {
            header.txtTitle.setText(getResources().getString(R.string.FAQs));
        } else if (flag == 3) {
            header.txtTitle.setText(getResources().getString(
                    R.string.PREMIUM_ACCOUNT));
        }
        webView = (WebView) findViewById(R.id.webView);
        webView.setWebViewClient(new WebViewClient());
        webView.clearHistory();
        webView.clearView();

        WebSettings settings = webView.getSettings();
        settings.setDefaultTextEncodingName("utf-8");
        settings.setJavaScriptEnabled(true);
        settings.setAllowFileAccess(true);
        settings.setLoadWithOverviewMode(true);
        settings.setPluginState(PluginState.ON);
        settings.setRenderPriority(RenderPriority.HIGH);
        settings.setCacheMode(WebSettings.LOAD_NO_CACHE);
        settings.setDomStorageEnabled(true);
        settings.setAllowUniversalAccessFromFileURLs(true);

        settings.setDisplayZoomControls(false);
        settings.setUseWideViewPort(false);
        if (Build.VERSION.SDK_INT >= 21) {
            CookieSyncManager.createInstance(this);
            CookieManager cookieManager = CookieManager.getInstance();
            cookieManager.removeAllCookie();
            cookieManager.setAcceptThirdPartyCookies(webView, true);
            cookieManager.setAcceptCookie(true);
            settings.setMixedContentMode(WebSettings.MIXED_CONTENT_NEVER_ALLOW);
        }
        webView.setBackgroundColor(Color.TRANSPARENT);
        if (Utils.isTablet(EvaluateYourSelfEsteemActivity.this))
            settings.setTextSize(WebSettings.TextSize.LARGER);
        else
            settings.setTextSize(WebSettings.TextSize.NORMAL);
        /** set background layer */
        if (Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.HONEYCOMB) {
            webView.setLayerType(WebView.LAYER_TYPE_SOFTWARE, null);
        }

        if (flag == 1) {
            webView.loadUrl("http://www.riseselfesteem.com/test/");
        } else if (flag == 2) {
            webView.loadUrl("http://192.168.1.42/work/rise/faqs/mobilefaq");
            // webView.loadUrl("http://rise.esprit-apps.com/faqs/mobilefaq");

        } else if (flag == 3) {
            webView.loadUrl("http://192.168.1.42/work/rise/payments/mobilepay/"
                    + Pref.getValue(EvaluateYourSelfEsteemActivity.this,
                            Config.PREF_USERID, "0"));
        }

        webView.setWebViewClient(new WebViewClient() {
            @Override
            public void onPageStarted(WebView view, String url, Bitmap favicon) {
                super.onPageStarted(view, url, favicon);
                if (mProgressDialog == null) {
                    mProgressDialog = new CustomProgressBarDialog(
                            EvaluateYourSelfEsteemActivity.this);
                    mProgressDialog.setCancelable(true);
                    mProgressDialog.show();
                }
            }

            // load URL
            public boolean shouldOverrideUrlLoading(WebView view, String url) {
                if (url.equals("http://www.riseselfesteem.com/video")) {
                    view.stopLoading();
                    startAnimatedActivity(new Intent(
                            EvaluateYourSelfEsteemActivity.this,
                            AboutUsActivity.class),
                            CustAnimatedActivity.SLIDE_FROM_RIGHT);
                    return false;
                } else if (url
                        .equals("http://192.168.1.42/work/rise/contact?mobilecontact")) {
                    view.stopLoading();
                    startAnimatedActivity(new Intent(
                            EvaluateYourSelfEsteemActivity.this,
                            ContectUsActivity.class),
                            CustAnimatedActivity.SLIDE_FROM_RIGHT);
                    return false;
                } else if (url.equals("http://paymentfail/")) {
                    view.stopLoading();
                    finish();
                    overridePendingTransition(
                            R.anim.animated_activity_slide_left_in,
                            R.anim.animated_activity_slide_right_out);
                    return false;
                } else if (url.equals("http://paymentdone/")) {
                    view.stopLoading();
                    Pref.setValue(EvaluateYourSelfEsteemActivity.this,
                            Config.PREF_IS_PAID, "1");
                    startAnimatedActivity(new Intent(
                            EvaluateYourSelfEsteemActivity.this,
                            PremiumAccountSucessActivity.class)
                            .addFlags(Intent.FLAG_ACTIVITY_REORDER_TO_FRONT),
                            CustAnimatedActivity.SLIDE_FROM_RIGHT);
                    finish();
                    return false;
                } else {
                    view.loadUrl(url);
                    return true;
                }

            }

            @Override
            public void onReceivedError(WebView view, int errorCode,
                    String description, String failingUrl) {
                super.onReceivedError(view, errorCode, description, failingUrl);
                if (mProgressDialog != null && mProgressDialog.isShowing()) {
                    mProgressDialog.cancel();
                    mProgressDialog = null;
                }

            }

            @Override
            public void onPageFinished(WebView view, String url) {
                super.onPageFinished(view, url);
                if (mProgressDialog != null && mProgressDialog.isShowing()) {
                    mProgressDialog.cancel();
                    mProgressDialog = null;

                }
            }
        });

        super.onCreate(savedInstanceState);
    }

    @Override
    public void onSaveInstanceState(Bundle outState) {
        super.onSaveInstanceState(outState);
        // Save the state of the WebView
        webView.saveState(outState);
    }

    // onRestoreInstanceState to restore the instance
    public void onRestoreInstanceState(Bundle savedInstanceState) {
        // Restore the state of the WebView
        webView.restoreState(savedInstanceState);
    }

    @SuppressWarnings("deprecation")
    @Override
    public void onDestroy() {
        try {
            webView.clearView();

        } catch (Exception e) {
            e.printStackTrace();
        }
        super.onDestroy();
    }

    @Override
    protected void onPause() {
        if (mProgressDialog != null && mProgressDialog.isShowing())
            mProgressDialog.dismiss();
        mProgressDialog = null;
        super.onPause();
    }

    @Override
    public void onBackPressed() {
        if (mProgressDialog != null && mProgressDialog.isShowing())
            mProgressDialog.dismiss();
        mProgressDialog = null;
        super.onBackPressed();

    }
}
我在logcat中得到以下错误:

12-31 10:29:11.223: I/art(11886): Rejecting re-init on previously-failed class java.lang.Class<com.android.webview.chromium.FloatingSelectActionModeCallback>
12-31 10:29:11.228: I/art(11886): Rejecting re-init on previously-failed class java.lang.Class<com.android.webview.chromium.FloatingSelectActionModeCallback>
12-31 10:29:11.246: I/art(11886): Rejecting re-init on previously-failed class java.lang.Class<com.android.webview.chromium.WebViewContentsClientAdapter$WebResourceErrorImpl>
12-31 10:29:11.247: I/art(11886): Rejecting re-init on previously-failed class java.lang.Class<com.android.webview.chromium.WebViewContentsClientAdapter$WebResourceErrorImpl>
12-31 10:29:11.223:I/art(11886):拒绝对以前失败的类java.lang.class重新初始化
12-31 10:29:11.228:I/art(11886):拒绝在以前失败的类java.lang.class上重新初始化
12-31 10:29:11.246:I/art(11886):拒绝在以前失败的类java.lang.class上重新初始化
12-31 10:29:11.247:I/art(11886):拒绝在以前失败的类java.lang.class上重新初始化

谢谢。

请检查在Android 4.4中迁移到WebView

Android 4.4(API级别19)引入了基于Chromium的新版本WebView。此更改升级了WebView性能和对HTML5、CSS3和JavaScript的标准支持,以匹配最新的web浏览器。在Android 4.4及更高版本上运行时,任何使用WebView的应用程序都将继承这些升级

参考链接:


希望它能对您有所帮助。

请检查在Android 4.4中迁移到WebView

Android 4.4(API级别19)引入了基于Chromium的新版本WebView。此更改升级了WebView性能和对HTML5、CSS3和JavaScript的标准支持,以匹配最新的web浏览器。在Android 4.4及更高版本上运行时,任何使用WebView的应用程序都将继承这些升级

参考链接:

希望它能对您有所帮助。

请尝试以下代码:

CookieManager cm = CookieManager.getInstance();
cm.setAcceptCookie(true);
应在创建WebView之前执行该命令。

请尝试以下代码:

CookieManager cm = CookieManager.getInstance();
cm.setAcceptCookie(true);

它应该在创建WebView之前执行。

除非您发布代码,否则我们无法假设出了什么问题。除非您告诉我们什么中断以及调试在哪里停止,否则我们无法知道什么是错误的。有了这么少的信息,这里就没有人能帮你了。@AndiGeeky,等等,我会附加代码,或者你会给我演示项目,在Kitkat,棒棒糖,url上面加载,Marshmallow@Dhaval沙阿:你用过吗?->@达瓦沙:请同时检查->除非你发布代码,否则我们无法假设出了什么问题。除非您告诉我们什么中断以及调试在哪里停止,否则我们无法知道什么是错误的。有了这么少的信息,这里就没有人能帮你了。@AndiGeeky,等等,我会附加代码,或者你会给我演示项目,在Kitkat,棒棒糖,url上面加载,Marshmallow@Dhaval沙阿:你用过吗?->@DhavalShah:Pleasec check Alway->not working it’s give sample error我正在查看nexus 7 Android版本5.1.1我已经提供了我想要加载的示例url请检查我的问题不工作它是give sample error我正在查看nexus 7 Android版本5.1.1我已经提供了我想要加载的示例url请检查我的问题可以吗你能为我提供一个在android webview中laod高于url的示例项目,并使用4.4+版本吗?你能为我提供一个在android webview中laod高于url的示例项目并使用4.4+版本吗?