问题标签 [webchromeclient]
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.
javascript - Android Webview 中 OpenFileChooser 的结果导致应用无响应
我正在开发 android 中的混合应用程序。在此应用程序中,我试图将图像(来自相机或画廊)作为用户个人资料图片。这是我用来获取图像的代码。
它使用相机和图库选项成功打开“FileChooser”窗口。如果我选择图像,那么应用程序可以完美运行。问题是,当我回到应用程序而不选择任何文件(通过后按或单击应用程序上的屏幕)时,应用程序被卡住(无法单击 webview 中的任何链接)。
出于测试目的(webview Activity 是否处于活动状态),我尝试在RESULT_CANCELED条件下调用 JS 函数。这是我的测试代码
这个函数也没有被调用。(但是当 resultCode 为RESULT_OK时调用函数)
测试设备操作系统版本:Android JB 4.3
我陷入了这种境地。你们能帮我处理RESULT_CANCELED情况并标记此问题已解决。提前致谢。
android - Android WebChromeClient onCloseWindow 不起作用
我有一个简单的 android 应用程序,它打开一个 webview 来调用一个 web 应用程序。
当 Web 应用程序有 window.close(); 时,我想关闭整个 android 应用程序;
我还希望后退键在网页中导航回来,这是有效的。
窗口正在关闭,但应用程序未关闭且日志未更新。我认为由于某种原因没有触发 onWindowClose。
这是我的安卓应用——
这是 Manifest.xml:
感谢你的帮助!
android - 检测#close何时是WebView中url的一部分
我有一个 WebView,我正在尝试处理将 #close 添加到 url 末尾时的行为。
下面的代码为每个没有附加#close 的加载 url 触发。我该如何处理?
编辑:我也试过以下没有运气。
android - 使用 WebView 在单独的视图中观看视频时 Android 崩溃
我有一个使用RelativeLayout 来保存webview 的片段,并为其分配了一个自定义WebChromeClient。当我使用 webview 观看 Youtube 视频时,它可以在单独的视图中显示视频。但是,当我退出单独的视图并返回 webview 时,应用程序崩溃了。
在我的主要片段活动中
详细情况:
1.在我的webview
2.打开Youtube
3.转到其中一个视频页面
4.点击视频的播放图标
5.[重要]当它还在加载时(在视频上保持黑色),点击全屏按钮假如。
6.触发onShowCustomView功能,然后全屏视频显示(隐藏webview只显示视频视图)
7.视频播放几秒钟
8.按返回键,触发onHideCustomView。(隐藏视频视图只显示webview)
9. webview 的视频已调整大小,大约 1~2 秒,应用程序崩溃并收到一些错误消息。
错误消息:
向 ErrorReportUtils 报告 WebCore 崩溃:
我发现了什么:
1. 不使用“mCustomViewCallback.onCustomViewHidden();” 在 onHideCustomView() 内部,应用程序不会崩溃,
但由 mCustomView(视频对象)创建的视频播放器小部件仍然存在。
2.在情况5,如果我等到视频内容显示,然后单击全屏按钮,应用程序在情况6~8之后可以正常工作。
android - 如何在 Android WebChromeClient 中自动播放 youtube 视频
我为 Android 创建了一个使用 WebChromeClient 的简单 APK
我已将用户代理设置为桌面浏览器
我在清单中添加了硬件=加速
尽管如此,我还是无法让 youtube 自动播放工作。
一个线索是当我在我的应用程序https://www.youtube.com/html5中访问此 URL 时,它指出“当前使用默认播放器”
如何让嵌入的 youtube 视频在我的 WebChromeClient 中自动播放?
我可以控制嵌入 youtube 视频的 APK 和 html 页面,因此任一端的解决方案都对我有用!
android - 从android webview获取加载的资源文件列表
有什么方法可以将当前成功加载和未加载的文件从 URL 获取到 android webview 中。也就是说,如果我正在加载以下内容,
- 1.js、2.js、3.js
- 1.css、2.css、3.css
在 html 页面中并将 html 文件加载到 android webview 中。
我需要在 webview 中列出加载的文件以及无法加载到 android webview 中的文件。我尝试使用 WebchromeClient 中的onConsoleMessage (),它仅检测控制台错误。此方法未获取 css 图像的错误消息。
这可以从 URL 列出文件吗?
android - Android 的 webviewclient onPageFinished() 未在某些页面上触发。
在我的 android 应用程序中,Web 视图包装了一个移动网站。作为浏览移动网站的用户,我想显示/隐藏后退和/或前进箭头以帮助他/她导航。为了确定显示隐藏后退和前进箭头,我在 webviewClient 的 onPageFinished() 中检查了 webview canGoBack() 和 canGoForward()(参见下面的代码)。下面是问题。
导航顺序 - Page1、Page2 和 Page3。OnPageFinished() 仅在 Page1 上触发,而不在 Page2 和 Page3 上触发。
我还尝试将 WebChromeClient 添加到 webview 并捕获 onProgressChanged(),但 onProgressChanged 仅在 Page1 和 Page3 上触发。
结果,我只能在 page3 而不是 Page2 上显示返回箭头。在 Page3 上,当在 Page2 上单击后退箭头时 onPageFinished() 被触发。
我无法访问移动网络,也无法在移动网络上获得任何帮助。基于查看 html 的源代码,我发现在 Page1 上单击了一个超链接以到达 Page2。
我的问题是为什么 Page2 和 Page3 上的 onProgessChanged() 在按 Page1、Page2 和 Page3 的顺序导航时没有触发,但在退出时在 Page2 上触发了 onProgressChange()。
您的任何帮助将不胜感激。如果您需要更多详细信息,请告诉我。
@Override protected void onCreate(Bundle savedInstanceState) {
}
}
}
android - 为什么whatsapp web 仅限于谷歌浏览器?
只是对此感到好奇,为什么whatsapp web 仅限于chrome?其他浏览器是否存在任何安全问题,或者它是特定于 chrome 引擎的问题,还是与性能相关的问题,或者是通过 gmail 将 whatsapp web 限制为 chrome 浏览器的移动到 pc 同步。我们可以有一个whatsapp web的firefox插件
android - 在 Android 上的 WebChromeClient 中使用 Google Analytics?
当前在 Android 应用程序的 WebChromeClient 中加载具有 Google Analytics 的网页。问题是,该应用似乎没有触发任何 GoogleAnalytics 回调(其中没有显示任何数据)。
最初认为问题是因为没有启用javascript,但是现在它已启用并且仍然没有数据。
另一种可能性是,WebChromeClient 在页面加载后不久被销毁。猜测它可能在 GA/JS 有时间将数据发送到服务器之前关闭?有什么方法可以监听 GA 脚本完成推送到服务器的综合浏览量的事件吗?
http://developer.android.com/reference/android/webkit/WebChromeClient.html
android - 使用反射在 Android 4.4 上上传文件的解决方法
从 Android 4.1 到 Android 4.3,您可以WebChromeClient
在 Android 上进行子类化并实现以下(隐藏,因此没有@Override
)方法:
您将在该方法中打开一个文件选择器,当您在Activity
中收到结果时,只需使用文件 URIonActivityResult(...)
调用实例上可用的单个方法。ValueCallback<Uri>
而已。
不幸的是,此方法已从 Android 4.4 的 API 中删除,并且不再被调用。
有什么办法可以解决这个问题,例如反射?
我的意思是,你可以在 HTMLonclick="..."
中的元素上设置一个监听<input type="file">
器,它仍然会被调用。
onclick="..."
在 Java 中拦截回调后(可能通过addJavascriptInterface(...)
),您可以像往常一样打开文件选择器。但问题是没有ValueCallback<Uri>
可用的实例可以将结果(选择的文件)发送到。
手动设置HTMLvalue="..."
中的<input type="file">
也是不可能的,因为它是只读的。但WebView
显然,实现本身当然可以写入值。那么您可以使用反射在此处设置值或找到另一种解决方法吗?
我正在寻找一种比检测<input type="file">
点击(例如通过它的onclick="..."
侦听器)和从 Java 手动执行文件选择和文件上传更干净、更舒适的解决方案。在 WebView 中启用文件上传,因为它们应该工作,肯定会更干净。