首页 > 解决方案 > 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。

我如何检测网站何时被应用程序打开?

标签: javascriptandroidmobile

解决方案


要检测网站是由浏览器还是 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;
}

你可以在这里找到详细信息


推荐阅读