我试着在网络视图中查看http://artikelweb.com。网页显示得很好。但是,每当我从“热门作者”部分转到任何作者链接时,网页都会出现,但是加载后,报价没有显示。
在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();
}
}
将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>");
在特定情况下,必须启用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中有效。
您正在使用的库具有以下初始设置:
https://raw.githubusercontent.com/delight-im/Android-AdvancedWebView/master/Source/library/src/main/java/im/delight/android/webview/AdvancedWebView.java
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出于安全原因禁用的许多选项。
问题内容: 我的问题是该网页未加载到webview中。 启动网络浏览器… 这是我的活动代码: 我在清单中添加了所需的权限: 问题答案: 由于这篇文章,我终于找到了解决方案。这是代码:
问题内容: 我需要在我的站点中显示另一个外部站点的内容。通常标签可以做到这一点。但我的要求不是全部内容,而只是该网站的一部分。例如该网站的布局有3个部分,,,。我的意思是我只想显示一部分。我该怎么做? 我试过了,但是没有用。 问题答案: 这是由于ajax跨域安全性限制,一种技巧是从服务器设置代理脚本,该脚本从不同的站点(域)下载内容,并将该代理用作javascript中的参考。 示例:(proxy
我想在中显示pdf文件的内容。 问题:当我启动时,一个新的对话框正在打开,不管我是想在浏览器中还是在pdf查看器中加载pdf。但我想直接在中加载内容。我还尝试了一个前缀url来嵌入内容,但结果显示:没有预览可用。 我的代码: 我现在用android-pdfView库用下面的代码尝试了一下: 但随后会在以下地址出现一个:。adress直接引用了我onedrive帐户中的pdf文件。所以当我在浏览器中
我已经在Eclipse SWT应用程序中嵌入了JavaFX的WebView,需要加载html内容。我需要阻止当前线程的执行,直到webengine加载完内容。任何熟悉这种情况并能给出一些提示和/或最佳实践来实现这一点的人?SWT和JavaFX似乎都在同一个UI线程中运行。 谢谢
我试图用WebView制作一个应用程序,但是网站使用的是,但是内容(例如mp3文件)使用的是,所以Android Lollipop不会加载它,因为它是“混合内容”。我尝试使用,但它没有加载任何内容。有办法修好吗?或者我可以让所有加载的网站都使用,这样就不会显示任何错误了?
我试图在一个网站上获得一个内容列表(若有人感兴趣的话,这一个)。布局最近发生了变化,现在他们不会一次加载所有内容,而是使用magic(可能是js)。我目前正在使用JSoup分析HTML,但我愿意接受建议。 这就是我得到的: 实现此目的的代码: 这是我想看到的(复制从检查元素后,页面加载了所有的内容): 谷歌帮不了什么忙,因为与微调器等相关的所有内容都与javascript有关。 解决方案: 由于J