问题标签 [webviewclient]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
470 浏览

android - Android webview 看起来与 PC 浏览器不同

我在 Android webview 中加载了具有 js 表单资产的 html 内容。但是它在 Android webview 和 PC 浏览器中的外观有很大差异。我也启用了 loadjavascript 并使用了 weviewclient 但仍然有区别。请提出问题所在。

提前致谢。

0 投票
0 回答
2645 浏览

android - 带有 WebViewClient 的 Android WebView - 使用 onReceivedHttpAuthRequest 进行身份验证

在我的应用程序中,我将 WebView 与 WebViewClient 一起使用,并使用覆盖方法 onReceivedHttpAuthRequest,在该方法中,我使用 AlertDialog 提示用户输入他的凭据。输入凭据后,我打电话

我的问题是: 在 Android 4 模拟器中,一切正常,用户可以毫无问题地浏览经过身份验证的站点,但在较旧的 Android 版本中,似乎每次用户刷新或导航到经过身份验证的站点中的另一个页面时都会调用 onReceivedHttpAuthRequest。

有人可以建议我吗,我做错了什么?谢谢你。

我尝试了什么:

也叫

当输入凭据并在 onReceivedHttpAuthRequest 中调用登录对话框之前添加这段代码时:

对我不起作用-用户可以浏览经过身份验证的站点,但是注销后,用户名和密码仍存储在 webView 中,并且用户再次自动登录-在这种情况下,我需要检测用户的注销并删除存储的凭据,有人可以吗告诉我,如何做到这一点?

非常感谢!

0 投票
5 回答
12998 浏览

android - 如何使用 HitTestResult 在 Android WebView 中获取链接 URL 以获取链接图像(而不是图像 URL)与 Longclick

我尝试捕捉 webview longclicks 以显示上下文菜单。(见下面的代码)当长按图像时,我总是得到额外的图像 URL(对于带有 IMAGE_TYPE 的未链接图像和带有 SRC_IMAGE_ANCHOR_TYPE 的链接图像)。但是如何获取带有超链接的图像的链接 URL(而不是图像 URL)?

最好的,塞巴斯蒂安

0 投票
2 回答
261 浏览

android - android webview相关

我有多个 html 文件保存在 assets 文件夹中。我的 html 文件之一是:

还有 3 个 html 文件与此相同。将加载第一页。在这里,我想通过检查 href 来获取 href 并手动加载链接。

我的代码是:

我想通过检查href值来获取href值并加载链接?

提前致谢

0 投票
1 回答
862 浏览

javascript - 在 webview 中启用 Javascript 时,Android Webview 未检测到链接点击

在我的应用程序中,我需要检测 webview 中的链接点击。我使用以下代码

但是在 编写shouldOverrideUrlLoading(WebView view, String url)时不会调用方法 。web.getSettings().setJavaScriptEnabled(true);但是如果我不写 web.getSettings().setJavaScriptEnabled(true);then shouldOverrideUrlLoading(WebView view, String url)就会被调用并检测到链接。我需要这两个,需要启用javascript并检测链接点击。请帮我弄清楚这一点。圣努

0 投票
0 回答
339 浏览

android - 如何解决 onReceivedError 中 ERROR_IO (-7) 的根本原因

我的基于 WebView 的代码太长(并且分散在几个模块中),无法在此处发布,我正在寻找一种可能对其他人有帮助的通用技术,所以这里是:

我有一组实现基本网络浏览器的WebViewWebViewClientJavascriptInterface派生类。它似乎运行良好,除了在运行Omniture的网站上,仅在一部手机上(运行 CyanogenMod 6 (Android 2.2.1) 的 Nexus One 上,url 超过一定(合理)长度的loadUrl()将冻结, 然后最终会超时onReceiveError() , ERROR_IO ( -7 ) 并带有以下描述字符串:

服务器无法通信。稍后再试。

澄清一下:相同的代码,相同的 URL 在我测试过的所有其他手机上都能完美运行。

我可以通过将此异常归因于该手机中特定版本的android.webkit中的错误来对此不屑一顾,但我不知何故怀疑我可能在自己的代码中遗漏了一些可以解决此问题的东西。原因是在同一部手机上,基于 WebView 的股票浏览器不会出现此问题。

我既好奇又细致,我觉得这很有趣也很有挑战性,也许是深入​​研究一些 HTTP 协议调试技术的好机会。

例如,如果我有办法利用android.net.http来获取诊断日志消息,那将是非常棒的,但如何为 WebView 和 WebViewClient 做到这一点?

有关如何解决此问题的任何建议或提示?

0 投票
1 回答
230 浏览

android - Android 的 Stock Web 浏览器是否使用 WebViewClient?

如果我理解正确,每个基于 WebView 的实现都需要 WebViewClient

但是查看Android 2.2 浏览器的源代码,我找不到任何提到WebViewClient 的内容。

如果不使用它如何工作?

如果它确实使用它,它在哪里“隐藏”?

0 投票
0 回答
376 浏览

android - 调用 JavaScript 函数并获取返回值

我在开发一个应该封装 Web 应用程序的 Android 应用程序时遇到了很大的麻烦,我认为 StackOverflow 是我现在唯一的希望。

第一个问题如下:我需要拦截单击“关于”链接以使用我们所有应用程序的标准关于视图启动一个活动。不幸的是,当我单击页面上的链接时,内容由 AJAX 加载并且shouldOverrideUrlLoading(String url)永远不会被调用。

我的解决方法是使用 Android 的 JavaScript 接口将对象传递给 JS,以便将加载 URL 放置到该对象,如下所示:

这是完美的工作,它看起来根本不像一个非常丑陋的解决方法。

第二个问题是,在 Android 2.1(手机和模拟器)中,WebView 不会在历史记录中存储 AJAX 加载的 URL,因此即使使用以下代码覆盖后退按键,按下后退总是会退出应用程序:

奇怪的是,这在所有版本的 Android >2.1 中都能完美运行。有没有可能的解决方法?

我们正在考虑调用一个 JS 函数来知道我是否可以回到历史,但是我如何从 Android 调用一个 JS 函数并获取它的布尔返回值?

首先十分感谢。

0 投票
1 回答
956 浏览

android - Android Fragments (with WebView) - Activity 被销毁

我在我的应用程序中使用基于选项卡的活动,我想用 WebViews 实现一个片段堆栈。在这些 WebViews 中,我想捕获 URL 请求并用新的 WebView Fragment 替换当前的 WebView Fragment。不幸的是我总是得到Activity was destroyed Exception但不知道为什么。

你能给我一些提示如何解决这个问题吗?

我使用以下代码(在代码示例的末尾,您将识别出handleUrlRequest我要替换当前 Fragment 的方法):

0 投票
2 回答
908 浏览

android - 如果我在 webview 中有 ontouch 事件,内置缩放控制不起作用

我正在使用 webiview,并且我覆盖了 onTouchEvent,而不是内置缩放控件不起作用。

提前致谢...