现在的app软件中有很多的都是套入了html5的页面,前端将网址给了android和iOS那必然会牵扯到与android和iOS的交互问题。接触这方面不是很深,但简单的说说我的体验--本人是做前端开发的,所以只针对于h5的。。。主要工作还是在android和iOS
android和iOS都是用webview
1、android主要是用window对象来处理。
2、iOS主要是WKWebView和UIWebView两大框架,现用的是webkit.messageHandlers方法
放上代码,兼容android和iOS
const deviceInvoker = (context, method, params) => {
typeof params === 'object' && (params = JSON.stringify(params))
if (typeof webkit !== 'undefined' && webkit.messageHandlers) {
webkit.messageHandlers[context].postMessage({method, params})
} else {
const func = window[context][method]
if (!func) return false
return params ? func.call(window[context], params) : func.call(window[context])
}
}
使用方法:
deviceInvoker('deviceApi', 'previewImages', json)