web-view页面内的H5页面跳转至小程序页面

一般的,web-view组件的src属性指定的H5页面之间,可以正常的采用超级链接a标记对进行页面之间的条转。但是web-view页面要想通过手指触碰返回小程序页面,就无法使用超级链接a标记了。那么这个问题应该如何解决呢?

1、在H5页面引入JSSDK

首先需要在H5页面中引入JSSDK,它可以让H5页面的js文件执行微信小程序的部分API命令。H5页面引入JSSDK的代码如下所示

2、跳转至小程序页面方法

wx.miniProgram.navigateTo()wx.miniProgram.navigateBack()wx.miniProgram.switchTab()wx.miniProgram.reLaunch()wx.miniProgram.redirectTo()

上述API的使用与微信小程序中页面跳转的API使用规范是一样的,以wx.miniProgram.navigateTo()为例,该方法的API格式如下所示。

// 判断当前环境是否为小程序

const ua = navigator.userAgent.toLowerCase();

if (ua.match(/MicroMessenger/i) == 'micromessenger') {

wx.miniProgram.getEnv((res) => {

if (res.miniprogram) {

console.log('在小程序内');

} else {

console.log('不在小程序内');

}

});

} else {

console.log('不在微信浏览器内');

}

// 小程序跳转方法

wx.miniProgram.navigateTo({

url:'/pages/index/index', // 指定跳转至小程序页面的路径

success: (res) => {

console.log(res); // 页面跳转成功的回调函数

},

fail: (err) => {

console.log(err); // 页面跳转失败的回调函数

}

});

// 通过链接与小程序通讯传参

// 静态参数传输

wx.miniProgram.navigateTo({

url:'/pages/index/index?id=1', // id:所需参数

success: (res) => {

console.log(res); // 页面跳转成功的回调函数

},

fail: (err) => {

console.log(err); // 页面跳转失败的回调函数

}

});

// 动态参数传输

let id = 1;

wx.miniProgram.navigateTo({

url:'/pages/index/index?id=' + id, // id:所需参数(动态参数需放在引号外小程序才可识别)

success: (res) => {

console.log(res); // 页面跳转成功的回调函数

},

fail: (err) => {

console.log(err); // 页面跳转失败的回调函数

}

});

注意事项:

跳转 tabBar 页面只可使用 wx.miniProgram.switchTab() 方法,其他方法均无效。wx.miniProgram.switchTab() 方法不可以携带参数,如跳转页面为 tabBar 页面则无法通过跳转路径实现H5与小程序之间的传参。

相应小程序官方文档:

https://developers.weixin.qq.com/miniprogram/dev/api/route/wx.switchTab.html

总结 本文重点在于对web-view页面返回小程序页面进行了讲解和总结。在小程序开发过程中,web-view页面的实现还有许多开发技巧和功能,主要得力于JSSDK的使用。JSSDK的说明文档如下所示。

https://developers.weixin.qq.com/doc/offiaccount/OA_Web_Apps/JS-SDK.html

简单记录如有问题或更优解还请不要吝啬的分享出来,此结。

参考文章

评论可见,请评论后查看内容,谢谢!!!评论后请刷新页面。