本文转自:https://www.cnblogs.com/pqjwyn/p/7120342.html
一、webview
简单来说WebView是手机中内置了一款高性能 webkit 内核浏览器,在 SDK 中封装的一个组件。不给过没有提供地址栏和导航栏,只是单纯的展示一个网页界面。
webview是混合开发的宿主环境。
二、webview与native的交互
1、H5网页的JS调用Native
本质还是用uiwebview的代理方法进行字段拦截(判断url的scheme),实现js间接调用native的method。
以前端的角度来看这段代码,是在 window 里创建一个叫 JSBridge 的对象,然后在里边定义一个方法 callFunction,这个方法的作用是把两个参数打包为 JSON 字符串,然后附带到我们自定义的 URL bridge-js://invoke? 后边,最后用 IFRAME 的方式来加载这个 URL当加载 IFRAME 的时候,就会调用 webView 的 delegate 的方法。对url进行处理,把以约定字符开头的url后面的json解析出来,执行对应方法。
三、URL Scheme
android中的scheme是一种页面内跳转协议,是一种非常好的机制,通过自己在AndroidManifest.xml文件里面定义自己的scheme协议,可以非常方便的跳转到App的各个页面。通过scheme协议,甚至可以跳转到App的某个页面,可以通过直接输入URL进行跳转,也可以把URL写进HTML页面进行跳转。