使用WebViewClient和/或WebChromeClient,您可以在页面加载时获取侦听器,但是在WebView显示任何内容之前,有时会在WebView中包含任何内容之前调用它.
什么是确定WebView何时显示其内容的有效方法?
编辑:(试图更清楚)
当我在WebView中加载页面时,我想将滚动设置为特定位置.看起来在页面加载之前无法设置滚动位置,并且它具有实际的内容高度.因此,我尝试了两种不同的方法来确定页面何时完成加载,来自WebViewClient的onPageFinished()以及来自WebChromeClient的onProgressChanged().这两个都告诉我页面何时完成加载.
但问题是,有时在页面显示之前调用它,因此页面没有高度,滚动调用什么都不做.
我试图找到一种可靠的方法来确定页面何时可以滚动,即.当它的内容高度.
我想我可以在完成加载后设置一个检查循环,以便在高度可用时继续寻找,但这看起来很像黑客.希望有一种更清洁的方式.
在我的android webview我的网页加载甚至没有因为缓存的互联网,所以我想在android webview中禁用缓存,任何人都可以帮我如何做到这一点?
我在我的webview中使用以下行,但仍然无法禁用缓存.
myBrowser.getSettings().setCacheMode(WebSettings.LOAD_NO_CACHE);
myBrowser.getSettings().setAppCacheEnabled(false);
Run Code Online (Sandbox Code Playgroud)
如果有其他方法,请建议我
我一直在研究一个具有WebView的应用程序,其中从资产中加载静态页面(也使用JavaScript).此WebView在KitKat中不起作用,它仍然是空白的.我知道渲染引擎(webkit到chrome)的变化发生在kitkat中的WebView中,并尝试了迁移的步骤,这在Android开发者页面中给出.但它没有帮助.
在logcat中,我收到一个从Chromium源抛出的错误.
W/AwContents? nativeOnDraw failed; clearing to background color.
请建议一个解决方法.
假设我通过webview加载第三方URL.
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
webview = (WebView) findViewById(R.id.webview);
webview.setWebViewClient(new HelloWebViewClient());
webview.getSettings().setJavaScriptEnabled(true);
webview.setWebChromeClient(new MyWebChromeClient());
webview.loadUrl("http://ebay.com");
}
Run Code Online (Sandbox Code Playgroud)
我可以在这个WebView中注入一些东西来替换我自己的ebay徽标吗?
我对javascript不是很熟悉,但我认为这是实现目标的最佳方式.如果没有,请纠正我.
我在最后有一个许可文本2按钮.所有这些都是用HTML编写的,WebView因为许可证中有一些链接.现在,我希望当用户点击其中的"确定"按钮时WebView,这会触发一些我可以用Java抓取的javascript或监听器来触发Intent应用程序中的前进.(取消按钮会相反,但如果我知道如何做,我可以做另一个.;))
这会给某人敲响吗?欢迎任何解释或示例代码.
我的应用程序引擎在WebView中运行.它跨越不同的IFRAMES.主要应用程序html和iframes html都在android_assets上.在Android 3.x上没有任何问题.在Chrome浏览器等上也是如此
如果我创建了一个IFRAME(createElement - > appendChild),则会创建iframe.
当我在其中加载内容时(iframe.src ="url"<> iframe.contentWindow.location.href ="url")...它取代了主要应用程序!! (而不是加载到iframe)
已经尝试过:
有类似问题的人吗?或者有人可以帮助我找到有关WebView ICS错误和Honeycomb的文档吗?
还发现了许多其他奇怪的问题...... ICS真的是这个车吗?:S:S
iframe android webview android-assets android-4.0-ice-cream-sandwich
之前已经多次询问过,我浏览了所有内容,还没有明确的答案.
问题简化:是否可以将本地Javascript文件(从资产或存储)注入Android Web视图中加载的远程网页?我知道可以将这些文件注入Web-View中加载的本地Web页面(Assets HTML).
为什么我需要这个呢?:通过避免每次都下载较大的文件(如Js和CSS文件)来提高浏览体验.我想避免Web-View缓存.
我正在开发一个Android应用程序,它使用WebView显示Facebook的登录页面.页面加载很漂亮,我可以选择用户名/密码文本框,但输入它们将无法正常工作.也就是说,它们肯定有输入焦点(它们有橙色焦点高亮框和闪烁的光标),但输入它们绝对没有任何效果.我不确定,但我想也许表单按钮也在播放 - 它们似乎只是刷新页面,而不是提交表单.
需要明确的是,虽然我对Facebook的运行特别感兴趣,但我确信这不是Facebook的问题,因为其他网站(谷歌等)也表现出同样的行为.
有没有人有任何想法可能是什么问题?
有没有办法在没有WebViewin活动的情况下检索浏览器的用户代理?
我知道有可能通过WebView以下方式获得:
WebView view = (WebView) findViewById(R.id.someview);
String ua = view.getSettings().getUserAgentString() ;
Run Code Online (Sandbox Code Playgroud)
但在我的情况下,我没有/需要一个webview对象,我不想只是为了检索用户代理字符串而创建它.
如何检索当前在WebView中显示的所有HTML内容?
我发现WebView.loadData()但我找不到相反的等价物(例如WebView.getData())
请注意,我感兴趣的检索的网页,我无法控制的数据(即我不能注入Javascript函数到这些网页,这样它会调用JavaScript接口的WebView).
android ×10
webview ×10
javascript ×3
android-4.0-ice-cream-sandwich ×1
caching ×1
chromium ×1
click ×1
events ×1
iframe ×1
listener ×1
templates ×1
user-agent ×1