如果您通过Web浏览器或App进入网站,网站如何区分?

时间:2017-01-22 13:29:58

标签: javascript json swift web-applications webview

如果您通过Safari和Chrome等网络浏览器进入网站,或通过移动应用程序上的网页浏览,网站如何区分?

我正在制作网络应用。但我想在您使用Web浏览器访问网站或使用Web View访问移动应用程序时提供不同的UI。

2 个答案:

答案 0 :(得分:1)

有两种可能的方法:

  1. 浏览器以及"网络浏览量" - 这是一种无头浏览器 - 将用户代理字符串传递给您的网站,该网站应该在您的服务器/编程环境中可用。您可以分析这些字符串并基于此提供不同的UI。在Google上搜索" webview用户代理字符串"。
  2. 不要关心设备本身。根据"功能提供不同的用户界面#34;喜欢屏幕大小(使用CSS Media Queries)和输入法(开始探索Pointer-Events的旅程)。
  3. 如今大多数开发人员都会推荐选项2。

答案 1 :(得分:0)

我认为,您自己实现移动应用程序和网站,需要检测自己的应用程序与浏览器。我为此练习了不同的解决方案。

当应用程序在移动设备中运行时,您可以将javascript桥接对象插入到浏览器的上下文中。当应用程序在浏览器中运行时,您检查是否存在javascript桥对象,如果不存在,则验证它是否存在。

所有你需要的方法是为这两种情况提供一种方法:

nativeBridge.getClientId();

对于网络,您将实现它:

if( !window.nativeBridge ){
    window.nativeBridge = {
        getClientId:function(){ return "web"; }
    }
}

对于Web视图,您必须向桥接器添加一个返回不同常量的方法。

注意:' nativeBridge'只是一个名字。你可能有不同的对象名称。