Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/211.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
Javascript webview加载网页,但加载后某些内容消失(Android Studio)_Javascript_Android_Android Webview - Fatal编程技术网

Javascript webview加载网页,但加载后某些内容消失(Android Studio)

Javascript webview加载网页,但加载后某些内容消失(Android Studio),javascript,android,android-webview,Javascript,Android,Android Webview,我尝试在网络视图中查看。网页显示得很好。但是,每当我从“热门作者”部分转到任何作者链接时,网页都会出现,但加载后,引号不会显示 在Google Chrome浏览器(移动)中,加载后会出现引号 但是,在我的应用程序中,引用不会显示在web视图中 代码段: @SuppressLint("SetJavaScriptEnabled") @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(s

我尝试在网络视图中查看。网页显示得很好。但是,每当我从“热门作者”部分转到任何作者链接时,网页都会出现,但加载后,引号不会显示

在Google Chrome浏览器(移动)中,加载后会出现引号

但是,在我的应用程序中,引用不会显示在web视图中

代码段:

@SuppressLint("SetJavaScriptEnabled")
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_web);

    myWebView = (WebView)findViewById(R.id.webView);
    WebSettings webSettings = myWebView.getSettings();
    webSettings.setJavaScriptEnabled(true);
    myWebView.loadUrl("http://www.artikelweb.com");
    myWebView.setWebViewClient(new WebViewClient());


}


@Override
public void onBackPressed() {
    if(myWebView.canGoBack()) {
        myWebView.goBack();
    } else {
        super.onBackPressed();
    }
}

将UserAgent设置为您的Webview设置,然后重试

webSettings.setUserAgentString("Mozilla/5.0 (Linux; <Android Version>; <Build Tag etc.>) AppleWebKit/<WebKit Rev> (KHTML, like Gecko) Chrome/<Chrome Rev> Mobile Safari/<WebKit Rev>");
webSettings.setUserAgentString(“Mozilla/5.0(Linux;;)AppleWebKit/(KHTML,如Gecko)Chrome/Mobile Safari/”;

在特定情况下,必须启用DOM存储API

webSettings.setDomStorageEnabled(true);
因此,您的代码必须是:

@SuppressLint("SetJavaScriptEnabled")
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_web);

    myWebView = (WebView)findViewById(R.id.webView);
    WebSettings webSettings = myWebView.getSettings();
    webSettings.setJavaScriptEnabled(true);
    webSettings.setDomStorageEnabled(true);
    myWebView.loadUrl("http://www.artikelweb.com");
    myWebView.setWebViewClient(new WebViewClient());
}
这是因为使用您正在访问的网站的javascript需要它的javascript

当然,您可以利用第三方库,但同样,您不知道为什么在第三方库中而不是在默认的webview中使用这个确切的案例

您正在使用的库具有以下初始设置:

final WebSettings WebSettings=getSettings();
webSettings.setAllowFileAccess(false);
setAllowAccessFromFileUrls(webSettings,false);
webSettings.SetBuilTinZoomControl(假);
setJavaScriptEnabled(true);
webSettings.setDomStorageEnabled(true);
如果(Build.VERSION.SDK_INT<18){
webSettings.setRenderPriority(webSettings.RenderPriority.HIGH);
}
webSettings.setDatabaseEnabled(true);
如果(Build.VERSION.SDK_INT<19){
setDatabasePath(databaseDir);
}
setMixedContentAllowed(webSettings,true);
设置第三方CookieSenabled(true);

默认情况下启用默认webview出于安全原因禁用的许多选项。

非常感谢您提供的信息。:)“这有助于弄清问题所在。”萨耶姆很乐意帮忙!希望你能在可能的时候支持我的答案;)@再见,好的!所以我会说:)@Sayem这应该是正确的答案。请记住,如果另一个答案比另一个更好或更具体地针对所呈现的主题,您可以随时更改您的答案决定。为Webview使用一些库。检查这个链接。这个网站是你的吗?我真的建议在做任何其他调查之前,先让网站稳定下来,看看为什么它在android webview上表现不好,从桌面PC上看,它会多次出现“出错”的情况,有时在你的页面中会出现类似这样的javascript错误
加载资源失败:服务器响应状态为500(内部服务器错误)
非常感谢。它起作用了。不,不是我的。好的。我向您解释了默认webview和您的设置不起作用的原因。您必须启用deh DOM存储API
final WebSettings webSettings = getSettings();
        webSettings.setAllowFileAccess(false);
        setAllowAccessFromFileUrls(webSettings, false);
        webSettings.setBuiltInZoomControls(false);
        webSettings.setJavaScriptEnabled(true);
        webSettings.setDomStorageEnabled(true);
        if (Build.VERSION.SDK_INT < 18) {
            webSettings.setRenderPriority(WebSettings.RenderPriority.HIGH);
        }
        webSettings.setDatabaseEnabled(true);
        if (Build.VERSION.SDK_INT < 19) {
            webSettings.setDatabasePath(databaseDir);
        }
        setMixedContentAllowed(webSettings, true);

        setThirdPartyCookiesEnabled(true);