设备检测 - 包含在应用程序Web视图中

时间:2014-02-02 10:36:05

标签: javascript android ios browser webview

我正在为ios,android和网络创建一个应用程序。该应用程序允许用户查看html页面,当他们触摸或单击该页面上的图像时,它会执行以下三种操作之一:

如果它是一个Android设备,点击通过javascript界面​​调用java中的方法。

如果它是ios设备,则点击会使用urlRequestShouldLoad hack调用目标c中的方法。

如果它是一个broswer,如safari,或chrome,或者除了android或ios webview之外的任何东西,它应该做一些不同的事情。

将有数百个HTML页面具有此功能,因此我真的希望避免为每个页面制作2或3个不同的副本。

到目前为止,我以为我会这样做:

- 用户点击元素 - >元素触发内联javascript函数 - >函数检测代理正在查看它,并确定要调用哪个函数以满足设备。

所以HTML页面可能如下所示:

<html>
<head>
 <script type='text/javascript'>
       function deviceDetection() {

        if (**device is Android application webview (not mobile broswer)**) {

            Android.myFunction();   

        } else if (**device is ios UIWebview (not mobile safari or something)**)

             window.location  = 'ios:webToNativeCall';

        } else {

            alert("you are using something other than an Android App WebView or ios UIWebview");
        }

     }
   </script>
</head>
  <body>
     <img src="..." onclick="deviceDetection()" />
  </body>
</html>

我的问题是:

这是处理此问题的最佳方法吗?此外,如果是这样,我如何检测Android WebView或IOS UIWebview与任何其他类型的broswer,移动或不移动。

谢谢...非常感谢帮助。

0 个答案:

没有答案