- 小程序自定义分享,标题和图片仍为默认。查了没有违规记录,是哪里出问题了吗?
小程序的分享,分享到微信聊天对话框,自己可以看到自定义的标题和图片。但分享到聊天,对话框中对方收到的是默认标题和无图片。目前图片已采用oss。downloadFile的合法域名也配置正常。找不到问题出在哪里,朋友圈分享可以正常显示自定义标题和图片。 appId:wxc8778936ea8a23fe 远程的图片大小约400K左右,5:4比例。 /** * 直接分享给朋友 * @param {Object} options - 分享选项 * @param {string} options.title - 分享标题 * @param {string} options.path - 分享路径 * @param {string} options.imageUrl - 分享图片 * @param {string} options.scene - 分享场景,可选值:WXSceneSession(好友)、WXSceneGroupChat(群聊) * @returns {Promise<Object>} - 分享结果 */ export const shareAppMessage = async (options = {}) => { try { // 默认分享参数 const defaultOptions = { title: '遛养派宠物管家 - 专业的宠物服务平台', path: '/pages/index/index', imageUrl: 'https://***oss.com/share/index1.png' } // 合并选项 const shareOptions = { ...defaultOptions, ...options } // 获取当前页面路径 const getCurrentPagePath = () => { try { const pages = getCurrentPages() if (pages && pages.length > 0) { const currentPage = pages[pages.length - 1] return `/${currentPage.route}` } } catch (e) { console.error('获取当前页面路径失败:', e) } return '/pages/index/index' } // 尝试获取分享签名 let signatureData = null const enableSignature = storage.get('enableShareSignature') if (enableSignature !== false) { try { // 使用新的AuthService方式确保token有效 const authService = getAuthService() // 检查并维护登录状态 await authService.checkAndMaintainLogin() // 直接调用已修复的getShareSignature函数,使用最终路径 signatureData = await getShareSignature({ path: pathWithQuery, imageUrl: shareOptions.imageUrl, title: shareOptions.title, signatureAlgorithm: shareOptions.signatureAlgorithm || 'RSAwithSHA256' }) } catch (err) { console.error('获取分享签名失败:', err) } } // 构建分享参数 const shareParams = { title: shareOptions.title, path: pathWithQuery, imageUrl: shareOptions.imageUrl } // 如果有签名数据,添加到分享参数中 if (signatureData) { shareParams.signature = signatureData.signature if (signatureData.appid) { shareParams.miniProgram = { appId: signatureData.appid, path: signatureData.path || (shareOptions.path || currentPath) } } } // 添加场景参数 if (shareOptions.scene) { shareParams.scene = shareOptions.scene } // 调用小程序的分享API return new Promise((resolve, reject) => { try { // 使用uni-app的API,它会自动适配不同平台 if (uni.shareAppMessage) { uni.shareAppMessage({ ...shareParams, success: (res) => { uni.$emit('shareAppMessage:success', res) resolve(res) }, fail: (err) => { console.error('直接分享失败', err) uni.$emit('shareAppMessage:fail', err) reject(err) } }) } else if (typeof wx !== 'undefined' && wx.shareAppMessage) { // 降级到原生wx API wx.shareAppMessage({ ...shareParams, success: (res) => { uni.$emit('shareAppMessage:success', res) resolve(res) }, fail: (err) => { console.error('直接分享失败(wx)', err) uni.$emit('shareAppMessage:fail', err) reject(err) } }) } else { // 如果两种API都不可用,则使用显示分享菜单的方式 console.warn('分享API不可用,使用分享菜单方式') // 显示分享菜单 try { if (typeof wx !== 'undefined' && wx.showShareMenu) { wx.showShareMenu({ withShareTicket: true, menus: ['shareAppMessage', 'shareTimeline'] }) // 显示提示 uni.showModal({ title: '分享提示', content: '请点击右上角"..."选择转发给朋友', showCancel: false, success: () => { // 模拟成功回调 setTimeout(() => { uni.$emit('shareAppMessage:success', { errMsg: 'showShareMenu:ok' }) resolve({ errMsg: 'showShareMenu:ok' }) }, 500) } }) } else { throw new Error('分享功能不可用') } } catch (shareMenuError) { console.error('显示分享菜单失败', shareMenuError) uni.showToast({ title: '分享功能不可用', icon: 'none' }) uni.$emit('shareAppMessage:fail', shareMenuError) reject(shareMenuError) } } } catch (error) { console.error('调用分享API异常:', error) reject(error) } }) } catch (error) { console.error('直接分享异常:', error) throw error } }
2025-12-13 - getLocation审核,类目和业务描述内容都清楚,为什么还不能通过?
wx.getLocation接口的接入申请,一直被拒绝。 我们涉及的业务描述是:用户可以随时查看周边的回收员;回收员展示当前的真实位置;根据回收员当前的位置进行预约订单的分配。如果用户有兑换商品。需要安排就近提供线下发货。回收站为流动点,回收员需要实时了解回收站位置进行回收打包。因此需要getLocation接口获取真实的位置信息。希望可以通过审核。 使用的是第三方的开发系统。 得到的不通过反馈是: 因你提供的申请原因/辅助图片/网页/视频内容无法确认申请接口使用场景审核不通过,建议修改后重新提交。 接口的使用场景:1、用户在下单的时候方便我们的回收人员获取准确位置。有些位置没有办法用添加地址来固定。2、回收员在回收到废品后需要及时和流动回收站点(移动中的回收集中点)及时准确的互通。3、地推的时候,积分兑换商城的商品由线下配送,需要确定用户的位置。希望真人参与审核。
2022-07-13