javascript - Android上的嵌入式站点检查站点是否由应用程序或浏览器打开
问题描述
我建立了一个新网站,然后为 Android 构建了一个新应用程序,并将我的网站嵌入到应用程序中。
通过下面的脚本,我可以理解用户是通过移动设备还是桌面设备进入网站的。
document.addEventListener('DOMContentLoaded', function() {
var userAgent = navigator.userAgent || navigator.vendor || window.opera;
if (/android/i.test(userAgent)) {
document.getElementsByClassName('banner')[0].innerHTML = 'html';
}
}, false);
我希望移动用户下载该应用程序。使用上面的脚本,我正在形成 html,为移动用户提供安装我的应用程序的链接。
问题是应用程序同时显示插入的html。
我如何检测网站何时被应用程序打开?
解决方案
要检测网站是由浏览器还是 Android 应用程序打开,请使用以下方法之一。
第一种方法
使用服务器端编码来检查请求标头。
PHP:
if ($_SERVER['HTTP_X_REQUESTED_WITH'] == "your.android.app.package.name") {
//webview
} else {
//browser
}
JSP:
if ("your.android.app.package.name".equals(req.getHeader("X-Requested-With")) ){
//webview
} else {
//browser
}
第二种方法
将javascript代码绑定到android代码并调用它。
@JavascriptInterface
在您希望 JavaScript 可用的任何方法上使用注释。
@JavascriptInterface
public void runningOnAndroid() {
androidApp = true;
}
你可以在这里找到详细信息
推荐阅读
- python - 使用 flask_restful 构建 RESTApi 时出错
- python - django.core.exceptions.ImproperlyConfigured: DJANGO_SETTINGS_MODULE 或在访问设置之前调用 settings.configure()。
- opendaylight - 我无法通过网络访问 OpenDayLight 11
- python - 如何让我的 OpenCV 代码正常工作而不会卡住
- laravel - 我正在将图片发布到粉丝专页,但用户没有看到帖子(通过 api)
- configuration - 软件中的配置和环境变量之间的主要区别是什么?
- python - Tetxtgenrnn 保存到特定路径
- javascript - 使用附加时如何正确定位 JSON 响应
- javascript - 如何使用Angular 8取消选择选择元素中的选定选项元素
- sql-server - 如何划分两个查询然后分组?