webview与原生端交互方法
前言
这几天刚好接到通过webview嵌套我们的游戏,同时需要与原生端交互的项目,很久以前也做过此类交互的项目,但是许久没接,也没做笔记,在需要使用的时候还是翻阅了很久资料才找到兼容性比较好的交互方法,因此就此次机会将他记录下来,方便后续使用。
方法说明
webview => 原生端
通过修改webview的document.localtion,然后原生端监听webview的链接变化从而得到对应的消息做出对应的操作
// webview (通过不同地址来传递不同的行为)
document.location.href = 'test://statusChange?status=' + 1;
document.location.href = 'test://statusChange?status=' + 2;
// 原生端 (方法不一,自行查阅对应的原生端方法即可)
// 监听变化执行对应操作即可
原生端 => webview
通过wevview这边项目暴露出全局函数,方便原生端调用
// webview
window.jumpLevel = () => {
// todo
}
// 原生端 (方法不一,自行查阅对应的原生端方法即可)
webView.evaluateJavascript("window.jumpLevel()",null)
// 这样便完成了原生端调用webview函数的方法
总结
以上即为对接所需的所有方法,由于我们只负责webview这边代码的编写,没有编写原生端的代码,因此就没列出原生端代码,但是以上方法可以完美适配安卓和ios两端与webview交互,后续若有编写原生端的时候,会找机会将他补上。那今天内容就到此为止啦!
最后的最后,一碗鸡汤奉上,You think you can, you can