wolichuang / dailyInterview

面试、工作中遇到的issue
0 stars 0 forks source link

js 与 app 交互方式 #52

Open wolichuang opened 3 years ago

wolichuang commented 3 years ago

1、采用拦截 URL 请求的方式

  1. 约定好要拦截的 URL
  2. 实现 UIWebView 的代理方法 shouldStartLoadWithRequest
  3. 在方法中对实现定义好的 URL 进行拦截,拦截到后处理原生逻辑及回调。
<button onclick="jsCallNativeMethod()" style="border: 1px solid black">通过拦截URL弹原生弹框</button>
<script>
function jsCallNativeMethod() {
    //可以传参数拼在后面就行
    location.href = "js_native://alert";
}
//原生回调js方法
function jsCallBackNativeMethod(arguments) {
    alert('原生调用js方法 传来的参数 = ' + arguments);
}
</script>

2 通过 WebViewJavascriptBridge(常用)

WebViewJavascriptBridge

// 注册方法- 客户端调用
bridge.registerHandler("showAlert", function(data) { alert(data) })

// 回调方法 - 客户端处理完数据 调用的方法
bridge.callHandler("handlerName", data)