小程序-实现怎么跳转打开 H5 网页链接(或跳转至公众号文章)

虽互不曾谋面,但希望能和您成为笔尖下的朋友

以读书,技术,生活为主,偶尔撒点鸡汤

不作,不敷衍,意在真诚吐露,用心分享

点击左上方,可关注本刊

标星公众号(ID:itclanCoder)

如果不知道如何操作

点击这里,标星不迷路

(长按扫码进入识开发者页面即可体验)

背景

有时候,因为业务需求,在小程序当中,需要跳转到 h5 网页,或跳转到公众号,形成流量的闭环,那在小程序当中怎么实现呢?

实例效果

(小程序跳转到公众号)

(小程序跳转到h5网页)

小程序实现跳转到公众号

前提条件

  • 该小程序与需要跳转至的公众号(订阅号/服务号)进行了绑定关联

  • 使用小程序开放能力web-view实现跳转(承载网页的容器。会自动铺满整个小程序页面,个人类型的小程序暂不支持使用)

web-view提供了一个src属性,这个src属性就是可以从小程序跳转到指定链接的地止

注意

使用webview时,需要单独的在小程序中创建一个页面,要在app.json中的pages中注册,如下所示,然后在webview中的wxml中使用webview标签,在webview标签上设置的src属性就是要跳转的地止

{
  "pages": [
     "pages/webview/webview"
  ]
}

在触发事件处:绑定事件

<view>
  <view class="contaniner-1" bindtap="handleToWxPublic">
    点击跳转到itclanCoder公众号
  </view>
  <view class="contaniner-1" bindtap="handleToWebSite">
    点击跳转到https://coder.itclan.cn/网站
  </view>
</view>

以下是逻辑代码

// pages/handletowebview/handletowebview.js
Page({
  /**
   * 页面的初始数据
   */
  data: {},

  /**
   * 生命周期函数--监听页面加载
   */
  onLoad: function(options) {},

  handleToWxPublic() {
    const url = 'https://mp.weixin.qq.com/s/EgSgGqMWoV4nrt7qPF9nzA'; // 跳转的地止,这里写你想要跳转的公众号地止即可
    const navtitle = 'itclanCoder'; // 小程序跳转到公众号页面显示的标题
    wx.navigateTo({
      // 跳转到webview页面
      url: `/pages/webview/webview?url=${url}&nav=${navtitle}`,
    });
  },

  handleToWebSite() {
    const url = 'https://coder.itclan.cn/'; // 跳转的外链
    const navtitle = 'itclanCoder'; // 这个标题是你自己可以设置的
    wx.navigateTo({
      // 跳转到webview页面
      url: `/pages/webview/webview?url=${url}&nav=${navtitle}`,
    });
  },
});

上面示例代码中的跳转的参数url,nav在另一个页面webview中的onLoad生命周期函数中的options参数中可以接收得到,重新赋新值即可

webview页面中,示例代码如下所示

<!--pages/webview/webview.wxml-->
<view>
  <web-view src="{{url}}"></web-view>
</view>

webview的逻辑页面

// pages/webview/webview.js
Page({
  /**
   * 页面的初始数据
   */
  data: {
    url: '', // 页面中需要的数据
  },

  /**
   * 生命周期函数--监听页面加载
   */
  onLoad: function(options) {
    this.setData({
      url: options.url, // 从跳转页面中传过来的url在options中可以拿到
    });
    wx.setNavigationBarTitle({
      title: options.nav,
    });
  },
});

如上代码就可以实现小程序跳转到公众号

小程序实现跳转到 H5 网页

小程序跳转到 H5 网页,与跳转公众号类似,只需要把上面的url地止切换成自己想要的链接即可

注意

跳转到的网页需要在小程序后配置支持业务域名即可完成跳转,否则是跳转失败的

如下所示,跳转至https://coder.itclan.cn/:

handleToWebSite() {
    const url = 'https://coder.itclan.cn/'; // 跳转的外链
    const navtitle = 'itclanCoder'; // 这个标题是你自己可以设置的
    wx.navigateTo({
      // 跳转到webview页面
      url: `/pages/webview/webview?url=${url}&nav=${navtitle}`,
    });
  }

可能会遇到的问题

  • 小程序跳转指定的公众号失败

  • 小程序跳转指定的 h5 页面失败

原因

  • 跳转的公众号需要关联该小程序,才支持小程序的跳转

  • 小程序后台管理没有配置添加业务域名(如果只是测试的话,可以在开发者工具里设置本地域名不校验合法域名webview等)

相关文档

  • webview-小程序开放能力

  • https://developers.weixin.qq.com/miniprogram/dev/component/web-view.html


公众号(ID:itclanCoder)

码能让您早脱菜籍,文能让您洗净铅华

  可能您还想看更多:

Js篇-面试题15-通过什么方法可以实现-检测页面 DOM 变化


Js篇-面试题11-比较下for..of与for..in的区别

Js篇-面试题9-请说一下Js中的事件循环机制

vuepress建站过程中遇到的一些问题

### Vue 开发的公众号 H5 页面跳转小程序的方法 在Vue项目中实现从微信公众号H5页面向小程序跳转主要依赖于`<wx-open-launch-weapp>`组件以及必要的配置工作。具体来说,在HTML结构里需引入特定的小程序开放标签,并确保这些标签被允许使用。 对于希望集成此功能的应用而言,服务器端返回的数据包内应该含有一个名为`openTagList`的数组属性,其中至少要包含字符串`'wx-open-launch-weapp'`作为其成员之一[^2]。这一步骤是为了告知前端哪些自定义标签是可以安全使用的,从而避免浏览器出于安全性考虑而阻止未知标签的行为。 当上述准备工作完成后,则可以在实际的HTML文档中编写如下所示的按钮元素来触发跳转动作: ```html <!-- HTML --> <button wx:if="{{canUse}}" open-type="launchApp" app-id="__APPID__" path="/page/index">前往小程序</button> ``` 这里需要注意的是,为了使该按钮能够正常运作并成功启动目标小程序,开发者应当替换掉模板中的占位符(即双下划线包围的部分),填入真实有效的应用ID(`__APPID__`)和预期打开小程序内部路径(path)[^1]。 与此同时,在JavaScript逻辑层面上也需要做一些额外处理以增强兼容性和用户体验。下面是一段简单的脚本片段用于说明这一过程: ```javascript // JavaScript (Vue Component Method) methods:{ handleLaunchMiniProgram(){ const appId = 'your-mini-program-appid'; // 替换成自己的小程序appid const pagePath = '/pages/home/home?query=example'; // 可选参数 try { wx.miniProgram.switchTab({ url: pagePath, }); } catch (err){ console.error(err); // 如果失败则尝试另一种方式 window.location.href=`weixin://dl/business/?tousername=${appId}&path=${encodeURIComponent(pagePath)}`; } }, } ``` 这段代码首先试图调用微信内置API `switchTab()` 来平滑过渡到指定的小程序界面;如果遇到异常情况(比如当前环境不支持此类操作),那么就退回到传统的URL Scheme方式进行重定向。这种方式可以有效提升跨平台的一致性体验[^4]。 最后值得注意的是,整个流程的成功执行离不开正确的微信公众账号设置及其关联的小程序授权关系的确立。只有当两者之间建立了合法绑定之后,以上提到的技术手段才能顺利发挥作用[^3]。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值