js与ios和android交互,使用jsBridge和原生IOS、Android交互
时间: 2024-02-03 17:04:39 浏览: 133
是的,为了实现在Web页面中与iOS和Android原生应用程序之间的交互,可以使用JSBridge。JSBridge是一个桥接工具,可以将JavaScript与原生应用程序之间的通信连接起来。
在iOS中,可以使用JavaScriptCore框架和WKWebView来实现JSBridge。在Android中,可以使用WebView和JavaScriptInterface来实现JSBridge。
具体来说,需要在原生应用程序中创建一个JavaScriptInterface类,该类可以实现JavaScript与原生代码之间的通信。然后在Web页面中,可以通过JavaScript调用原生应用程序中的方法。
例如,在iOS中,可以使用以下代码创建一个JavaScriptInterface类:
```
@objc class JSInterface: NSObject {
weak var webView: WKWebView?
init(webView: WKWebView) {
self.webView = webView
super.init()
}
@objc func showToast(_ message: String) {
let alertController = UIAlertController(title: "Toast", message: message, preferredStyle: .alert)
let okAction = UIAlertAction(title: "OK", style: .default, handler: nil)
alertController.addAction(okAction)
self.webView?.viewController?.present(alertController, animated: true, completion: nil)
}
}
```
然后在Web页面中,可以通过以下代码调用原生应用程序中的showToast方法:
```
window.webkit.messageHandlers.jsInterface.postMessage({action: 'showToast', message: 'Hello world!'});
```
在Android中,可以使用以下代码创建一个JavaScriptInterface类:
```
public class JSInterface {
private Context context;
public JSInterface(Context context) {
this.context = context;
}
@JavascriptInterface
public void showToast(String message) {
Toast.makeText(context, message, Toast.LENGTH_SHORT).show();
}
}
```
然后在Web页面中,可以通过以下代码调用原生应用程序中的showToast方法:
```
window.jsInterface.showToast('Hello world!');
```
通过这种方式,可以实现JavaScript与iOS和Android原生应用程序之间的交互。
阅读全文