在IOS和安卓app内嵌的H5页面怎样打开app内的一个原生页面?

现在有一个需求,是安卓和IOS的app内嵌我一个活动页,当用户点击页面上的一个查看按钮时,打开原生app的一个页面去查看,请问这个交互怎么实现?如果有实例代码的话更好,在下在此感激不尽!

阅读 12.2k
10 个回答

叫原生开发人员给你暴露接口,不然做不到。

如果你们app支持scheme形式跳转了,或者公司有没有touch页打开其它页面的sdk

原生开发人员对webview浏览器中的即将跳转的地址进行拦截处理,如果是特定的链接如app://login这种形式的url,就打开登录页

需要原生开发人员给你做下处理,iOS用bridge,Android需要定义一个方法。然后点击的时候,js去调用

iOS:

假设你们的APPID是 myAPPID。
按钮的超链接可以是 myAPPID://home/action/.....
然后原生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) {

    // 进行需要进行的操作

}

不知道你是不是这样需求...

叫app开发给方法,,你直接调用就可以,很简单

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题