javascript - 如何检测使用的是 Android 浏览器还是 Android native WebView 客户端

标签 javascript php android browser webview

首先我会解释我有什么,然后我想做什么。我搜索了很多,你可以认为这个问题已经存在,但我认为这是一个非常具体的案例。

我有一个网络应用程序,使用带有 php、jQuery、javascript 等的模板系统... 现在我正在开发一个移动网络版本,其中包含针对移动设备的特定模板。它工作正常,但当我想将移动网络包含在 android native 应用程序 中时,问题就来了,在 WebView 中。

我启用了 javascript 以及让它工作所需的一切,以便使用脚本调用我自己的 Android 功能。而且效果很好!

问题是,当我从应用程序外部的任何浏览器访问时,移动网络和 Android 检测到设备,但它说当我像这样调用 android native 应用程序函数时,函数未定义:

   <script>Android.showToast("Welcome");</script>

所以问题是,我如何检测我使用的是网络浏览器还是 native 应用程序? 或者,我怎样才能避免网络移动设备因该错误而崩溃?

问候!!感谢您的帮助!

最佳答案

通过 PHP,您可以检查正在尝试访问您网页的 user-agent。您可以使用其中之一进行测试。

if( $_SERVER['HTTP_X_REQUESTED_WITH'] == 'your_android_app_package_name' ) {
   //...Inject your javascript code

}

if( strpos($_SERVER['HTTP_USER_AGENT'], 'your_android_app_package_name/') !== false ){
   //...Inject your  javascript code.

关于javascript - 如何检测使用的是 Android 浏览器还是 Android native WebView 客户端,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19404974/

相关文章:

php - 在 if 语句中使用 in_array() 在导致 "Maximum execution time of 30 seconds exceeded"的循环中返回 false

php - Laravel MySQL whereIn 关闭不按预期工作

java - 如何使用给定的 ssid 和密码测试 wifi 连接并返回给定的 ssid 和密码是否正确的结果

android - 如何禁用 Android 中的抽屉指示器移动?

android - 哪个fb ://url is suitable to trigger the FB application prompting to share content?

javascript - 创建新对象并使用 fs.writeFile() 写入文件

javascript - 应用程序中使用的类/实例方法与静态方法之间有什么显着差异吗?

php - Wordpress - Woocommerce 删除 "Added to Cart"消息

javascript - 无法从 select 获取值(值未定义)

Javascript:将包含日期的数组按降序排序