Javascript 设备检测-包括应用程序内的网络视图

Javascript 设备检测-包括应用程序内的网络视图,javascript,android,ios,browser,webview,Javascript,Android,Ios,Browser,Webview,我正在为ios、android和web创建一个应用程序。该应用程序允许用户查看html页面,当用户触摸或单击该页面上的图像时,它会执行以下三项操作之一: 如果它是安卓设备,单击会通过javascript接口调用java中的方法 如果它是一个ios设备,单击调用目标c中带有urlRequestShouldLoad hack的方法 如果是broswer,比如safari、chrome,或者android或ios网络视图以外的任何东西,它应该做一些不同的事情 将有数百个HTML页面具有此功能,因此我真

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

如果它是安卓设备,单击会通过javascript接口调用java中的方法

如果它是一个ios设备,单击调用目标c中带有urlRequestShouldLoad hack的方法

如果是broswer,比如safari、chrome,或者android或ios网络视图以外的任何东西,它应该做一些不同的事情

将有数百个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>

函数deviceDetection(){
如果(**设备为Android应用程序webview(非mobile broswer)**){
Android.myFunction();
}如果(**设备是ios UIWebview(不是mobile safari或其他东西)**,则为else
window.location='ios:webToNativeCall';
}否则{
警报(“您使用的不是Android应用程序WebView或ios UIWebview”);
}
}
我的问题是:

这是最好的处理方法吗?此外,如果是这样的话,我该如何检测Android WebView或IOS UIWebview与任何其他类型的broswer(移动或非移动)的对比

谢谢。。。非常感谢你的帮助