0


ios/android原生应用与H5交互

H5和原生交互是一个很常见的需求,现介绍一下基本的交互方式

Android端:

一、H5调用Android原生方法 主要实现方式是通过WebView的addJavascriptInterface方法向web注入一个自定义js对象实现js调用Android方法。

1、H5调用Android方法

1.1、例如: H5端调用Android端的finishActivity方法:

window.android.finishActivity('发送给android1')

1.2、Android向WebView注入一个对象(android):

@JavascriptInterface public void finishActivity(String value) {

Log.e("js调起的原生方法=",value);

finish();

}

1.3、webview代码配置:

二、Android调用H5方法

2.1、H5需在window中挂载事件,暴露给移动端调用:

window.setAuthentication = this.setAuthentication

//具体方法

setAuthentication(param) {

this.roomTotal = JSON.stringify(param)

return '......认证信息.......'

}

2.2、通过WebView的evaluateJavascript方法调用js方法:

2.3、Android 4.4以上调用evaluateJavascript来实现调用js方法,同时能够获取网页返回的数据。 webview.evaluateJavascript(javascript:方法名(参数),

new ValueCallback{

public void onReciveValue(String value){}

})

2、参数递的是json格式的字符串,网页接受到的会是json对象

IOS端:

一、js调用iOS原生方法 通过WkwebView提供的WKScriptMessageHandler协议实现js调用iOS原生方法。

H5端调用iOS端的nativeMethod方法: window.webkit.messageHandlers.nativeMethod.postMessage('');

iOS原生注册方法

nativeMethod: [config.userContentController addScriptMessageHandler:self name:@"nativeMethod"];

当js调用iOS注册的方法时,iOS会走WKScriptMessageHandler的代理方法:

  • (void)userContentController:(WKUserContentController *)userContentController didReceiveScriptMessage:(WKScriptMessage *)message

二、iOS调用js方法

通过WkWebView的evaluateJavaScript调起js方法:

NSString *promptCode = [NSString stringWithFormat:@"%@()", @"nativeCalljs0"]; [self.wkWebView evaluateJavaScript:promptCode completionHandler:^(id _Nullable result, NSError * _Nullable error) {

//result可以接收到js方法的返回值

NSLog(@"%@",result);

}];

因为iOS和Android与H5调用方式不同,因此我们需要提前判断嵌入的平台,完整代码如下:

标签: android 交互 webview

本文转载自: https://blog.csdn.net/qq_26704997/article/details/127507966
版权归原作者 丁国栋- 所有, 如有侵权,请联系我们删除。

“ios/android原生应用与H5交互”的评论:

还没有评论