我正在为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,移动或不移动。
谢谢...非常感谢帮助。