现在的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)
参考资料: 前端 WebView 指南之 Android 交互篇