微信小程序web-view环境下H5跳转小程序页面方法实例代码

在处理微信小程序web-view环境下H5页面与小程序页面之间的跳转时,我们常常遇到一些特定的需求和问题。比如,H5页面之间的跳转通常通过超级链接a标记来实现,但在web-view页面中,要想通过手指触碰返回小程序页面,这种方法就不再适用。因此,我们需要采用更合适的方法来解决这个问题。

首先,我们需要在H5页面中引入JSSDK(JavaScript-SDK)。JSSDK可以让H5页面的js文件执行微信小程序的部分API命令,从而实现页面间的跳转等功能。具体的引入代码如下:

接下来,我们将介绍几种常见的页面跳转方法。wx.miniProgram.navigateTo()、wx.miniProgram.navigateBack()、wx.miniProgram.switchTab()、wx.miniProgram.reLaunch() 和 wx.miniProgram.redirectTo()。这些API的使用规范与微信小程序中页面跳转的API基本相同。例如,我们可以通过以下方式使用wx.miniProgram.navigateTo()进行页面跳转:

首先,需要判断当前环境是否为小程序,代码如下:

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/doc/offiaccount/OA_Web_Apps/JS-SDK.html

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