支付宝小程序间的跳转问题

最近在负责支付宝小程序的开发,遇到一个问题,在平台店领取优惠券后,需要跳转到相应的商家小程序去使用,这就涉及到小程序间的跳转问题,相关的API为navigateToMiniProgram。

1、不带参数的跳转;

(1)appId和页面路径为指定值:

goUse(item) {
    uni.navigateToMiniProgram({
        appId: "2020002180xxxxxx",  //要跳转到的小程序的appId
        path: "pages/index/index",  //要跳转到的小程序的页面路径
        success(res) {
            // 跳转成功
        }
    })
}

(2)appId和页面路径为动态获取值

goUse(item) {
    uni.navigateToMiniProgram({
        appId: item.appId,  //接口获取每个优惠券要跳转到的小程序的appId
        path: item.url,  //接口获取跳转到的小程序的页面路径
        success(res) {
            // 跳转成功
        }
    })
}

2、带参数的跳转;

goUse(item) {
    uni.navigateToMiniProgram({
        appId: item.appId,  //接口获取每个优惠券要跳转到的小程序的appId
        path: item.url,  //接口获取跳转到的小程序的页面路径
        extraData: {
            id:item.id
        },
        success(res) {
            // 跳转成功
        }
    })
}

问题就出现在了这种情况下,带参数的情况需使用 extraData 传值,然后在跳转到的页面的onLoad中获取:

onLoad(options) {
    this.id = options.id
}

但这样却无法正常传值,导致跳转后页面没有数据,所以改用一下这种方法:

goUse(item){
    uni.navigateToMiniProgram({
        appId: item.appId,
	    path: item.url + '?id=' + item.id,
        success(res) {
            // 打开成功
        }
    });
}

将传参拼接到跳转的页面路径后,然后在跳转到的页面的onLoad中获取。

这样就可以实现带参数跨小程序跳转页面的功能了。

欢迎大家提出问题!

你可能感兴趣的:(前端技能进阶,小程序)