我尝试在网页浏览中查看http://artikelweb.com。 网页很好地显示。但是,每当我去来自" Popular Authors"部分,会显示网页,但加载后,引号不会显示。
在Google Chrome浏览器(移动版)中,加载后会显示引号
但是,在我的应用中,引号未显示在网络视图中。
代码段:
@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();
}
}
答案 0 :(得分:1)
使用一些库进行Webview。 请查看此链接。AdvancedWebview
答案 1 :(得分:0)
将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>");
答案 2 :(得分:0)
在您的特定情况下,您必须启用DOM Storage 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.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);
默认情况下启用默认webview因安全原因而禁用的许多选项。