问题描述:
移动端使用webview打开网页,网页中需要用js调用移动端原生的方法来实现另外的一些功能。
解决方法:
首先,需要判断是android端还是ios端
//判断是否为ios端访问
function _IsIOS() {
if (/(iPhone|iPad|iPod|iOS)/i.test(navigator.userAgent)) {
return true;
} else {
return false;
}
}
//判断是否为android端访问
function _IsAndroid() {
if (/(Android|Adr)/i.test(navigator.userAgent)) {
return true;
} else {
return false;
}
}
然后根据判断结果来调用移动端的原生方法
//method为移动端原生方法的方法名,param为要传递的参数
if (_IsIOS()) {
window.webkit.messageHandlers.method.postMessage(param);
} else if (_IsAndroid()) {
window.control.call('method', param);
//或者window.control.method(param);
}
注意:
- ios只接受一个参数,因此如果需要传递多个参数,可以将参数做成json进行传递
- ios的参数不能不传,哪怕只传个空字符串(这是个坑)