Javascript webview加载网页,但加载后某些内容消失(Android Studio)
我尝试在网络视图中查看。网页显示得很好。但是,每当我从“热门作者”部分转到任何作者链接时,网页都会出现,但加载后,引号不会显示 在Google Chrome浏览器(移动)中,加载后会出现引号 但是,在我的应用程序中,引用不会显示在web视图中 代码段: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
@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);