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) // )}&amp;&amp;type=${this.type}&amp;&amp;share='app'</code>,
//测试环境用1 打包后正式环境用0
type: 0,
webUrl: "http://www.dcloud.io/",
},
res =&gt; {
console.log(res, "跳转小程序");
},
error =&gt; {
console.log(error, "跳转小程序失败");
}
);
} else {
that.$ui.showModal({
title: "提示",
content: "请先安装微信客户端",
showCancel: false,
});
}
},
error =&gt; {
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

Image Image

信息类别 详细信息
产品分类 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 的配置项(如 appIdappSecret 等),确保这些配置项与第三方平台上的配置一致。

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);
        }
    });
回到顶部