现在有一个需求,是安卓和IOS的app内嵌我一个活动页,当用户点击页面上的一个查看按钮时,打开原生app的一个页面去查看,请问这个交互怎么实现?如果有实例代码的话更好,在下在此感激不尽!
现在有一个需求,是安卓和IOS的app内嵌我一个活动页,当用户点击页面上的一个查看按钮时,打开原生app的一个页面去查看,请问这个交互怎么实现?如果有实例代码的话更好,在下在此感激不尽!
Android内的如何暴露方法让网页调用
1. //可以与JS交互
mWebView.getSettings().setJavaScriptEnabled(true);
//设置给网页调用的接口
private class WebAppInterface {
private final Context mContext;
public WebAppInterface(Context context) {
mContext = context;
}
//这个方法是用来给网页内调用的
@JavascriptInterface
public void gotoNextPage() {
startActivity(new Intent(...));
}
}
mWebView.addJavascriptInterface(new WebAppInterface(this), "android");
Web 端代码
<button onClick="window.android.gotoNextPage()">跳转到下一页</button>
<!--这里的android 对应Android代码内设置调用接口时给的值-->
iOS 的代码应该是类似的
假设iOS使用WebKit加载你H5界面
然后在原生代码中注册一个通知跳转的方法 conf是WKWebViewConfiguration对象,中间省略WKWebView的代码,自己设置
let userCC = conf.userContentController
userCC.add(self, name: "showTishi")
然后在H5页面按钮调用下面代码 window.webkit.messageHandlers.showTishi.postMessage('xx');
iOS代码里面下面方法能接受H5页面按钮点击事件
func userContentController(_ userContentController: WKUserContentController, didReceive message: WKScriptMessage) {
// 进行需要进行的操作
}
不知道你是不是这样需求...
10 回答11.1k 阅读
6 回答3k 阅读
5 回答4.8k 阅读✓ 已解决
4 回答3.1k 阅读✓ 已解决
2 回答2.6k 阅读✓ 已解决
3 回答1.4k 阅读✓ 已解决
3 回答2.3k 阅读✓ 已解决
叫原生开发人员给你暴露接口,不然做不到。