微信小程序web-view打开网页与网页H5跳转微信小程序

1、微信小程序web-view打开网页

目前从小程序进入网页的方法使用web-view

1.1、小程序官网需要配置业务域名

打开官网,选择左侧开发管理,选择开发设置,往下找到业务域名,添加域名。设置时需要下载校验文件,并将文件放置在域名根目录下。

1.2、web-view配置完成但是打不开

web-view | 微信开放文档

web-view 组件是一个可以用来承载网页的容器,会自动铺满整个小程序页面。个人类型与海外类型的小程序暂不支持使用。

web-view我使用比较多,搜索之后发现需要注意两个点,主要加了一个开关和转码
1.跳转web-view页面时

    toWeb() {
        let url = "/pages/business-card/business-card?Id=" + encodeURIComponent(this.data.Id)
        wx.navigateTo({
          url: url
        })
      },

2.web-view页面使用时

web-view.js页面

    Page({
     
      /**
       * 页面的初始数据
       */
      data: {
        webViewsrc: '', //网址实际路径要写全
      },
     
 
    })

  web-view.wxml页面

<web-view src="{{webViewsrc}}"></web-view>

2、H5跳转小程序

H5页面跳转小程序进行绑定、授权等功能

注意:相对于客户端打开小程序的限制是,无法通过点击小程序按钮返回app

# 跳转微信小程序

# 场景1 微信外跳转小程序

方案说明: 在微信外浏览器基于scheme模式跳转到微信小程序,其中scheme地址为调用livelink后台接口得到

限制: scheme打开微信小程序有次数限制,具体查看接口返回提示

# scheme获取接口

基础路由:

  • 测试环境:https://testapi-open.livelink.qq.com/livelink
  • 生产环境:https://s1.livelink.qq.com/livelink
// 接口路由:?c=Sdk&a=GenMiniappScheme&跟上具体的sdkquery参数
// post请求
// body入参
{
  "accountType": "wx" // qq|wx可选, 跳转微信小程序传入wx
}
// 出参
{
  "jData": {
    "urlScheme": "xxxxx" // 直接在页面中使用该链接跳转即可
  },
  "iRet": 0,
  "sMsg": "succ"
}
// -1290000 这个错误码返回说明微信小程序生成使用已达上限

query参数: 参照微信小程序query参数

注意:如果返回-1290000错误码,则需兜底方案: 提示用户在微信内打开livelink中转页进行跳转,中转页地址及参数需平台侧拼接后提供给用户

# 场景2 微信内跳转小程序

# 方案1 独立开发

方案说明:在微信内浏览器打开活动页面,基于微信开放标签直接进行跳转小程序,参照文档:跳转小程序

(opens new window)

  • 优势:体验号,在活动页直接跳转到小程序
  • 劣势:需要公众号,且类型必须为服务号;需项目开发页面

小程序appid: wx707e2eb408780a5b

路径:pages/gameAccountBind/index

query参数: 参照微信小程序query参数

示例:

<wx-open-launch-weapp
  id="launch-btn"
  appid="wx707e2eb408780a5b"
  path="pages/gameAccountBind/index?redirectUrl=&nickName=%E5%B0%8F%E6%A3%AE6%E5%8F%B7&faceUrl=http%3A%2F%2Fp5.a.yximgs.com%2Fuhead%2FAB%2F2024%2F02%2F26%2F13%2FBMjAyNDAyMjYxMzU2MDdfMzk4NDQ3OTA2NV8yX2hkNjMzXzI0Mw%3D%3D_s.jpg&actId=9163&sig=fcd625213050eaf993055fdd97c28441&livePlatId=kuaishou&gameIdList=yxzj&t=1727168121&code=pCWxzhlW3vvq8%2BDEr%2F2ffRgrYCIqAra2UYfoOR5Mexg%3D"
>
  <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>
# 方案2 使用livelink中转页

方案说明:在微信内浏览器打开活动页,绑定前跳转打开livelink中转页,在livelink中转页完成绑定后返回活动页

  • 优势:无需活动方开发,接入快速
  • 劣势:需要用户多一个跳转到中转页的步骤

中转页地址: https://livelink.qq.com/h5-open-mp/wx/

中转页query参数:参数与小程序query参数相同,参照微信小程序query参数

示例:

// url
https://livelink.qq.com/h5-open-mp/wx/?redirectUrl=&nickName=%E5%B0%8F%E6%A3%AE6%E5%8F%B7&faceUrl=http%3A%2F%2Fp5.a.yximgs.com%2Fuhead%2FAB%2F2024%2F02%2F26%2F13%2FBMjAyNDAyMjYxMzU2MDdfMzk4NDQ3OTA2NV8yX2hkNjMzXzI0Mw%3D%3D_s.jpg&actId=9163&sig=fcd625213050eaf993055fdd97c28441&livePlatId=kuaishou&gameIdList=yxzj&t=1727168121&code=pCWxzhlW3vvq8%2BDEr%2F2ffRgrYCIqAra2UYfoOR5Mexg%3D

# 跳转QQ小程序

方案说明: 基于scheme模式跳转到QQ小程序,其中scheme地址为调用livelink后台接口得到

接口说明:参照微信小程序scheme接口进行,需注意是

  1. accountType传参为qq
  2. queryString参数: 参照QQ小程序query参数,即额外需要appPackageName, appBundleId, appQQConnectId三个参数

其他:QQ小程序获取scheme没有限制,无需兜底方案


                       
参考:

https://blog.csdn.net/yangmin_kk/article/details/134920108

H5跳转小程序 | 腾讯游戏来联运营工具

uniapp 是一个使用 Vue.js 开发所有前端应用的框架,可以编译到 iOS、Android、H5、以及各种小程序等多个平台。在 uniapp 中开发微信小程序,如果需要嵌套使用 web-view 组件并实现从 web-view 页面关闭 web-view跳转微信小程序中的某页面,可以按照以下步骤进行: 1. 在 web-view 页面中注入微信小程序的 API: 由于 web-view 内的页面是运行在 webview 中的网页,我们需要在网页中注入微信小程序提供的 API,以便能够控制小程序的行为。这通常通过 `wx.miniProgram.qqJSBridge` 或者新的 `wx.miniProgram` 实现。 2. 使用小程序提供的方法关闭 web-view: 在网页中注入微信小程序 API 后,可以通过执行小程序的 `wx.miniProgram.postMessage` 方法发送消息到小程序,然后在小程序端捕获这个消息并执行关闭 web-view 的操作。示例如下: 网页端代码(web-view 内的网页): ```javascript // 假设你已经注入了微信小程序 API 到页面中 // 发送消息给小程序端,请求关闭 web-view wx.miniProgram.postMessage({ data: { action: 'closeWebview' } }); ``` 小程序端代码(用于接收 web-view 中发送的消息并关闭 web-view): ```javascript // 监听来自 web-view 的消息 const webview = plus.webview.currentWebview(); webview.addEventListener('message', function(e) { if (e.data && e.data.action === 'closeWebview') { // 执行关闭 web-view 的操作 // 这里的操作取决于你的业务逻辑 // 可能是关闭当前 web-view 或者跳转到其他页面 // 例如使用 uni.$emit 或者 vuex 等状态管理来控制页面跳转 } }); ``` 3. 跳转微信小程序中的某页面: 关闭 web-view 后,你可能需要跳转小程序的某个页面。这可以通过小程序的页面跳转 API `wx.navigateTo` 或者其他导航 API 来实现。例如: ```javascript // 跳转小程序的指定页面 wx.navigateTo({ url: '/pages/targetPage/targetPage' }); ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值