uni-app 【已解决】跟换证书包名后 uni.share 异常
uni-app 【已解决】跟换证书包名后 uni.share 异常
示例代码:
uni.share({
provider: "weixin",
scene: "WXSceneSession",
type: 1,
summary: "我正在使用HBuilderX开发uni-app,赶紧跟我一起来体验!",
success: function (res) {
console.log("success:" + JSON.stringify(res));
},
fail: function (err) {
console.log("fail:" + JSON.stringify(err));
},
complete: function (res) {
console.log("complete:" + JSON.stringify(res));
},
});
//稳定运行的代码
// uni.share({
// title: that.goods.name,
// type: "5",
// provider: "weixin", //分享服务提供商
// scene: "WXSceneSession", //场景
// summary: "", //分享内容的摘要
// imageUrl: that?.goods?.info?.share_image,
// miniProgram: {
// id: "gh_430f0641948b",
// path:
// "pages/mall/goods_detail/goods_detail?inviteId=" +
// that.userinfo.id +
// "&goodsId=" +
// that.goodsId,
// type: 0,
// webUrl: "https://cpgstest.gszjxtpt.com/dist/index.html#/",
// }, //分享小程序必要参数
// success: res => {
// console.log(res, "success");
// },
// fail: res => {
// console.log(res, "ree");
// },
// });
//app 打开小程序代码 有成功回调 但是回调是空的数据
plus.share.getServices(
res => {
console.log(res, "share");
let sweixin = res.find(i => i.id === "weixin");
if (sweixin) {
sweixin.launchMiniProgram(
{
id: "gh_430f0641948b",
path: "/pages/pay/pay",
// path: <code>/pages/pay/pay?orderInfo=${encodeURIComponent( // JSON.stringify(that.orderInfo) // )}&&type=${this.type}&&share='app'</code>,
//测试环境用1 打包后正式环境用0
type: 0,
webUrl: "http://www.dcloud.io/",
},
res => {
console.log(res, "跳转小程序");
},
error => {
console.log(error, "跳转小程序失败");
}
);
} else {
that.$ui.showModal({
title: "提示",
content: "请先安装微信客户端",
showCancel: false,
});
}
},
error => {
console.log(error);
that.$ui.showModal({
title: "提示",
content: "请先安装微信客户端",
showCancel: false,
});
}
);
});
操作步骤:
app 分享 app 打开小程序
预期结果:
预期功能能正常使用
bug描述:
- 更换包名后(1.已验证安装包的签名和微信开放平台签名是一致的 2. 也绑定了微信小程序 3.代码中也是原始id 4.分享图片不超过100kb)
- 微信分享无法使用 不管分享什么都报 不支持的类型 (代码以前是稳定运行)也多次排查过代码 没问题 uni.share API 一会能拿到fail (报错-3 但是和-3相关的问题都排查过) 一会又什么回调都拿不到 就连complete回调都拿不到
- app 打开小程序报错 无效的app
信息类别 | 详细信息 |
---|---|
产品分类 | uniapp/App |
PC开发环境 | Windows |
PC开发环境版本 | windows11 |
HBuilderX类型 | 正式 |
HBuilderX版本 | 4.13 |
手机系统 | Android |
手机系统版本 | Android 14 |
手机厂商 | 华为 |
手机机型 | 90pro |
页面类型 | vue |
vue版本 | vue2 |
打包方式 | 云端 |
项目创建方式 | HBuilderX |
App下载地址 | https://sj.qq.com/appdetail/com.wwgsxt.mall |
更多关于uni-app 【已解决】跟换证书包名后 uni.share 异常的实战教程也可以访问 https://www.itying.com/category-93-b0.html
3 回复
多次排查不是 uniapp 的锅 代码及配置都是 对的 是最近操作多微信开放平台 1.多个开放平台app包名重复
解决办法是 将开放平台应用删除 重新发布一次
更多关于uni-app 【已解决】跟换证书包名后 uni.share 异常的实战教程也可以访问 https://www.itying.com/category-93-b0.html
管理员帮我关闭哈帖子吧 被微信误导了
在 uni-app 中,如果你更换了证书或包名(packageName
)后,发现 uni.share
功能出现异常,通常是因为第三方分享平台(如微信、QQ、微博等)的配置与新的包名或证书不匹配。以下是可能的原因及解决方案:
1. 检查第三方平台配置
-
微信分享:如果你使用微信分享,需要在微信开放平台上重新配置应用包名和签名。微信分享功能依赖于包名和签名的匹配。
- 登录 微信开放平台。
- 找到你的应用,修改包名(
packageName
)。 - 生成新的签名(使用微信提供的签名生成工具,或者通过命令行生成)。
-
QQ分享:如果你使用QQ分享,需要在腾讯开放平台上重新配置包名。
- 登录 腾讯开放平台。
- 修改应用包名。
-
微博分享:如果你使用微博分享,需要在微博开放平台上重新配置包名。
- 登录 微博开放平台。
- 修改应用包名。
2. 重新生成签名
- 如果你更换了证书,签名(
signature
)也会发生变化。你需要重新生成签名,并在第三方平台上更新。 - 可以使用以下命令生成签名(适用于Android):
其中,keytool -exportcert -alias your_alias -keystore your_keystore.jks | openssl sha1 -binary | openssl base64
your_alias
是你的别名,your_keystore.jks
是你的密钥库文件。
3. 检查 uni-app 配置
- 确保
manifest.json
中的包名(packageName
)已经更新为新的包名。 - 如果你使用了
uni.share
的配置项(如appId
、appSecret
等),确保这些配置项与第三方平台上的配置一致。
4. 清除缓存并重新打包
- 在更换证书和包名后,建议清除项目缓存并重新打包。可以使用以下命令:
npm run clean npm run build
5. 调试与日志
- 如果问题仍然存在,可以通过调试或查看日志来进一步排查问题。
uni.share
提供了回调函数,可以通过回调函数获取错误信息。 - 示例:
uni.share({ provider: 'weixin', type: 0, scene: 'WXSceneSession', title: '分享标题', summary: '分享内容', success: function(res) { console.log('分享成功:', res); }, fail: function(err) { console.error('分享失败:', err); } });