静态h5页面跳转到微信小程序

一、需求:

通过发送的短信链接,打开一个H5页面,然后跳转到小程序

二、文档地址:

微信官方文档-H5跳小程序

三、准备工作:

开通静态网站绑定自定义域名,需要在「微信开发者工具 - 云开发 - 更多 - 静态网站」里进行,才能拥有免鉴权的能力

四、静态html页面

1. 下图将文件下载下来,替换replace的地方

2. 按照下图点找到静态网站,现改为按量付费,然后就可以上传文件了

3. 改一下权限 

三、上传云函数:

1. 如果项目本身是云开发,直接将上面下载下来,放到下面的路径,如果不是云开发,就随便建一个云开发项目,appId选择好就行

2. 将上面下载的文件里面的public放到这个位置 

 3. 右键点击【上传并部署:云端安装依赖】

 4. 然后设置云函数权限

 

四、根据实际业务需求,动态获取参数,并传入小程序中

1. jump-mp.html部分:

function getUrlData() {
      var url = window.location.search;
      console.log('url', url)
      let dataObj = {}
      // if (url.indexOf("?") != -1) {
      //   var str = url.substr(1);
      //   var strs = str.split("&");
      //   for (var i = 0; i < strs.length; i++) {
      //     dataObj[strs[i].split("=")[0]] = decodeURI(strs[i].split("=")[1]);
      //   }
      // }
      let btn = document.getElementById('launch-btn')
      let path = '/xxx/xxx/index' + url;
      btn.setAttribute('path', path);
      btn.addEventListener('launch', function (e) {
        console.log('success', e);
      });
      btn.addEventListener('error', function (e) {
        console.log('fail', e.detail);
      });
}
// 页面加载完成事件
window.onload = function () {
    console.log("页面加载完成!");
    getUrlData()
}

async function openWeapp(onBeforeJump) {
      var c = window.c
      const res = await c.callFunction({
        name: 'public',
        data: {
          action: 'getUrlScheme',
          url: '/xxx/xxx/index',
          query: window.location.search.split('?')[1] ? window.location.search.split('?')[1] : ''
        },
      })
      console.warn(res)
      if (onBeforeJump) {
        onBeforeJump()
      }
      location.href = res.result.openlink
}

2. 云函数部分

// 云函数入口文件
const cloud = require('wx-server-sdk')

cloud.init()

// 云函数入口函数
exports.main = async (event, context) => {
  const wxContext = cloud.getWXContext()

  switch (event.action) {
    case 'getUrlScheme': {
      return getUrlScheme(event.url, event.query)
    }
  }

  return 'action not found'
}

async function getUrlScheme(url, query) {
  return cloud.openapi.urlscheme.generate({
    jumpWxa: {
      path: url, // <!-- replace -->
      query: query,
    },
    // 如果想不过期则置为 false,并可以存到数据库
    isExpire: false,
    // 一分钟有效期
    expireTime: parseInt(Date.now() / 1000 + 60),
  })
}

参考:

静态网站 H5 跳小程序 | 微信开放文档

短信跳小程序 | 微信开放文档

微信小程序--云开发静态网站h5跳小程序 - 小小小梅子 - 博客园

### H5 页面跳转小程序实现方法 #### 微信公众号环境下的H5页面跳转小程序 对于微信公众号内的H5页面要实现在特定条件下(比如点击按钮)跳转到指定的小程序,可以利用`wx.miniProgram.navigateTo`接口来完成这一操作。此功能适用于已认证的服务号和订阅号,在调用该API之前需确保当前网页已在微信公众平台配置JS接口安全域名列表内[^1]。 ```javascript if (typeof wx !== 'undefined' && wx.miniProgram) { wx.miniProgram.navigateTo({ url: '/page/index?query=1' }); } ``` 上述代码片段展示了如何通过JavaScript检测是否存在`wx.miniProgram`对象并尝试导航到给定路径的小程序页面。这里的URL参数可以根据实际需求调整以传递必要的查询字符串。 #### 静态HTML页面直接跳转小程序 针对静态HTML页面想要无须额外验证就能触发向小程序的转换,则需要先设置好微信云开发中的静态网站服务,并绑定自定义域名。只有完成了这些前置条件之后编写的链接才具备免鉴权特性,从而允许用户从外部浏览器访问时也能顺利进入关联的小程序[^2]。 为了使普通的超链接能够携带足够的信息启动目标小程序,应该按照如下模式构建: ```html <a href="weixin://dl/business/?touser={APPID}&path={PATH}&noncestr={NONCESTR}&signature={SIGNATURE}">前往小程序</a> ``` 其中各个占位符代表的意义分别为:应用ID(`{APPID}`),具体打开的小程序内部页面路径加上可能存在的参数(`{PATH}`),随机串(`{NONCESTR}`)以及签名(`{SIGNATURE}`)。注意这里提到的方式依赖于微信客户端版本支持情况,某些旧版设备上可能会遇到兼容性问题。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值