本人基础不好,是个前提。
现在想从微信小程序点击购买按钮跳转京东小程序或App
URL(字段名:link)是从api返回的,存在云开发的数据库books集合里面,应该是含有导购信息。
AI给的答案全都不能实现,点击链接没有反应。
以下是示例。
```javascript
openPurchaseLink: function() {
console.log('--- 开始跳转京东 ---');
debugger; // 添加调试断点
console.log('--- 按钮点击触发 ---'); // 强制日志
if (!this.data.book) {
console.error('当前数据:', this.data); // 打印完整数据
}
// 1. 检查图书数据
if (!this.data.book || !this.data.book.link) {
console.error('错误:图书数据或link字段不存在');
wx.showToast({
title: '商品链接不存在',
icon: 'none'
});
return;
}
const jdUrl = this.data.book.link.trim();
console.log('原始链接:', jdUrl);
// 提取商品ID(支持多种京东URL格式)
const jdSkuId = this.extractJdItemId(jdUrl);
if (!jdSkuId) {
console.error('无法提取商品ID');
wx.showToast({
title: '无法提取商品ID,将打开网页版',
icon: 'none'
});
wx.navigateTo({
url: `/pages/webview/webview?url=${encodeURIComponent(jdUrl)}`
});
return;
}
console.log('提取的商品ID:', jdSkuId);
setTimeout(() => { // 避免loading一闪而过
wx.navigateToMiniProgram({
appId: 'wx91d27dbf599dff74', // 京东小程序的appId
path: `/pages/item/item?itemId=${jdSkuId}`, // 商品详情页路径
envVersion: "release",
success: () => {
console.log('跳转京东成功');
},
fail: (err) => {
console.error('跳转失败:', err);
wx.showToast({
title: '跳转失败,将打开网页版',
icon: 'none'
});
wx.navigateTo({
url: `/pages/webview/webview?url=${encodeURIComponent(jdUrl)}`
});
},
complete: () => {
wx.hideLoading();
}
});
}, 500);
},
extractJdItemId: function(url) {
const patterns = [
/(?:jd\.com|jd\.com\.hk)\/(\d+)\.html/,
/product\/(\d+)\.html/
];
for (const pattern of patterns) {
const match = url.match(pattern);
if (match && match[1]) return match[1];
}
return null;
},
```