关于h5跳转到小程序的坑

2,323 阅读1分钟

一、小程序-内嵌网页-小程序

调用web-view组件实现小程序内嵌网页

承载网页的容器。会自动铺满整个小程序页面,个人类型的小程序暂不支持使用。

跳转前提:

1.小程序跳转到网页使用web-view时,需要到小程序后台添加网页的业务域名 配置业务域名教程

<web-view src="https://www.baidu.com"></web-view>

2.webview中的网页跳转小程序方法,需要引入js-sdk 教程

image.png

wx.miniProgram.navigateTo({
    url:'/pages/index/index',  //pages前面需要加斜线
    success(res){
       console.log (111, JSON.stringify(res))
    },
    fail(res){
        console.log (222,JSON.stringify(res))
    }
});

开发中遇到的问题

1.网页跳转回小程序会碰到类似如下的错误,ok了但是小程序依然不跳转,此时就是路径问题:

{errMsg: “invokeMiniProgramAPI:ok“}

下面两种写法都试一试,一个是绝对路径,一个是相对路径的写法,一般都能解决上述问题:

wx.miniProgram.navigateTo({url:'/pages/index/index'});
wx.miniProgram.navigateTo({url:'../index/index'});

2.目前嵌入的webview网页中是不支持使用开放标签跳转到小程序或者app的,所以这里不能使用开放标签

二、h5-小程序

使用开放标签

跳转小程序:wx-open-launch-weapp

用于页面中提供一个可跳转指定小程序的按钮。使用此标签后,用户需在网页内点击标签按钮方可跳转小程序

  1. 已认证的服务号,服务号绑定“JS接口安全域名”下的网页可使用此标签跳转任意合法合规的小程序。 image.png
  2. 已认证的非个人主体的小程序,使用小程序云开发的静态网站托管绑定的域名下的网页,可以使用此标签跳转任意合法合规的小程序
<wx-open-launch-weapp
  id="launch-btn"
  appid="wx12345678"
  path="pages/home/index?user=123&action=abc"
>
  <script type="text/wxtag-template">
    <style>.btn { padding: 12px }</style>
    <button class="btn">打开小程序</button>
  </script>
</wx-open-launch-weapp>
<script>
  var btn = document.getElementById('launch-btn');
  btn.addEventListener('launch', function (e) {
    console.log('success');
  });
  btn.addEventListener('error', function (e) {
    console.log('fail', e.detail);
  });
</script>