Android:
1) window.WebViewJavascriptBridge[methodName](params)
2) window.android.methodName
IOS:
1) window.webkit.messageHandlers[methodName].postMessage(params) // 无法获取原生返回值
2) window.prompt(message, default) // 可以获取到返回值
const getAppCode = () => {
let ua = navigator.userAgent.toLowerCase()
if (ua.indexOf('_android') > -1) {
return 'android'
} else if (ua.indexOf('_ios') > -1) {
return 'ios'
} else {
return ''
}
}
const implement = (methodName, params = '') => {
if (getAppCode() === 'ios') {
return window.webkit.messageHandlers[methodName].postMessage(params)
return window.prompt(JSON.stringify({type: 'JSbridge', functionName: methodName, arguments: {}}))
}
if (getAppCode() === 'android') {
window.android[methodName](params)
}
return false
}
// 调用
const result = implement(func, {})
// 需要注意点window.prompt用法:
window.prompt(JSON.stringify({type: 'JSbridge', functionName: funcName, arguments: {}}))