实现小程序和H5页面之间互相跳转

栏目: IOS · Android · 发布时间: 4年前

内容简介:需求背景是这样的,在小程序里面,点击查看用户签订的协议,跳转到协议详情页,刚好协议详情页在另一个H5项目的已经有,所以就想直接跳转过去,避免再开发小程序版本的协议详情页小程序里面运行H5页面,需要嵌在<web-view></web-view>Demo:在小程序里面打开百度网页

一、背景

需求背景是这样的,在小程序里面,点击查看用户签订的协议,跳转到协议详情页,刚好协议详情页在另一个H5项目的已经有,所以就想直接跳转过去,避免再开发小程序版本的协议详情页

二、小程序跳转H5页面

小程序里面运行H5页面,需要嵌在<web-view></web-view> web-view 里面,注意:一个项目只能有一个<web-view></wb-view>。

Demo:在小程序里面打开百度网页

在小程序项目里面src/pages/新建一个webview的文件夹,含有wxml/wxss/json/js

wxml:
<web-view src="{{ src }}"></web-view>
js:在onLoad里面获取到url这个参数,然后赋值给data,这样在wxml里面就能取到src的值。
Page({
    data: {
        url: '',
    },
    onLoad: function (param) {
        this.setData({
            url: decodeURIComponent(param.url),
        })
    }
});

json/wxss是空文件就可以了。

在小程序的页面跳转到H5页面的写法

wx.navigateTo({
    url: '../webview/index?url=https://www.baidu.com/'
});

这样就成功实现从小程序跳转到H5页面。

三、H5页面返回小程序

从H5页面返回小程序页面,需要使用微信SDK提供的跳转方法。

window.wx.miniProgram.navigateTo({
    url: `/page/account/index`,
 });

使用微信的SDK方法,需要先发送签名验证wx.config。

四、小程序和H5互跳遇到的坑

  1. 【问题描述】wx.miniProgram.navigateTo中url无法跳转问题

【问题解决】:app.json中配置的tabBar与wx.navigateTo中的url引用相同页面导致

首先pages/account/index这个路径在app.json已经存在,也就是当前从H5页面window.wx.miniProgram.navigateTo(url)的url已经和app.json的一样。此时是不能通过这个方式跳转,而是要改成 window.wx.miniProgram.reLaunch(url)

总结:如果url在app.json已定义,则使用reLaunch跳转,如果没有,则使用miniProgram.navigateTo(url)

  1. 【问题描述】在小程序里面跳转到H5协议详情页的时候,进入了系统错误页(项目里定义好的错误页),当我现在微信公众号打开该协议详情页,此时再从小程序进入,不会出现。

【问题解决】这里我判断是跟登录态有关系,因为我先访问一下公众号,此时浏览器里有了登录态,所以在小程序里面访问协议详情页不会进入系统错误页。

定位问题过程:H5页面是vue页面,先从路由文件/routes/index.js开始debugger,果然就在登录的js里面找到问题,查看登录的js里面有一个先会登出的过程,然后再login(这里是因为不同券商的原因,需要logout清除上一个券商的数据,哈哈,流水账,不然越记越长,不展开咯)在登录logout的过程,此时该cgi抛出异常,刚好被全局捕获,所以进入了系统错误页。

后面的解决方法,是在登出的时候try catch捕获异常,不要把异常被全局捕获。

try {await request('logout.cgi')} catch(e) {console.log('error')}
记下问题2,是想跟自己说,bugger经常有,遇到了就一个个地看debugger,看错误来源哪里。谨记在心。

以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

创业维艰

创业维艰

本·霍洛维茨 Ben Horowitz / 杨晓红、钟莉婷 / 中信出版社 / 2015-2 / 49

本·霍洛维茨,硅谷顶级投资人,与网景之父马克·安德森联手合作18年,有着丰富的创业和管理经验。2009年创立风险投资公司A16Z,被外媒誉为“硅谷最牛的50个天使投资人”之一,先后在初期投资了Facebook、Twitter、Groupon、Skype,是诸多硅谷新贵的创业导师。 在《创业维艰》中,本·霍洛维茨从自己的创业经历讲起,以自己在硅谷近20余年的创业、管理和投资经验,对创业公司(尤......一起来看看 《创业维艰》 这本书的介绍吧!

HTML 压缩/解压工具
HTML 压缩/解压工具

在线压缩/解压 HTML 代码

随机密码生成器
随机密码生成器

多种字符组合密码

RGB HSV 转换
RGB HSV 转换

RGB HSV 互转工具