記錄uni-app的APP端分享到微信好友,鏈接為小程序頁面,分享失敗的BUG
分享到微信好友,鏈接為小程序端報錯
16:59:19.617 fail:{"errMsg":"share:fail [Share微信分享:-6]send, http://ask.dcloud.net.cn/article/287","errCode":-100,"code":-100} at pages/product/detail.vue:300
step1
找原因:由於我沒有遇到過,怎么辦呢?
因為用的是uni-app框架開發的,所以我直接在社區里面找,知道找到了以下解決方案
[關於‘ 分享到"微信"失敗: -100 - Share微信分享:-6] ’ 的最終解決方案 - DCloud問答
問題解決方案長這樣
1. 這個問題根本原因是你微信開發平台上的簽名與你的應用簽名不一致。順便一提,微信開放平台上的簽名是應用簽名的keystore文件的MD5值。MD5值是xx:xx:xx:xx:xx:xx:xx這種格式的秘鑰,你復制到微信開發平台上就應該全部轉換為小寫以及去掉冒號,如f221hghf2h3jhf3k1j這樣的一串字符。
2. 更簡單地,可以用[簽名檢測工具](https://res.wx.qq.com/open/zh_CN/htmledition/res/dev/download/sdk/Gen_Signature_Android2.apk)工具檢查一下app的簽名,用法就是下載該工具到手機上,打開輸入包名即可得到一串字符,不出意外跟上面的方法得出字符串是一樣的。
3. 如果你后面改回來,確認簽名已經一致了,但是依舊報這個錯誤,那么無疑就是微信緩存問題,因為微信記錄了app分享的值,刪掉微信,重裝微信就OK了。
以上方法由廣大DCloud用戶摸索出來,我負責總結,如果在這個問題上你還有其他的情況產生,歡迎評論留言。
參考鏈接:[分享錯誤碼](http://ask.dcloud.net.cn/article/287)以及該文章下面的評論。歡迎點贊。
然后我仔細比對了應用簽名,發現沒有問題。
step2
我又去試試分享到微信好友文字的方法
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));
}
});
發現依舊報錯啊,打不通分享,也測試了其他分享,發現依舊不通,無法分享到微信好友
step3
然后我覺得是打包配置不對,mainifest.json文件配置的分享有問題,果然,我開始配置成小程序的appid了,結果是微信開放平台申請的APPID
我修改成我們在微信開放平台申請的APPID后,打包測試了,然后發現分享鏈接到小程序頁面依舊無法成功。
報 分享類型不正確
但是其他的鏈接,比如簡單文本及圖片分享都可以分享給微信好友了。
step4
我然后百思不得姐,炸裂啊,真的有點心態爆炸。
我百度了,終於按照關鍵詞【uniappAPP分享到微信打開是小程序】搜索出來一篇文章
uni.share({
provider: 'weixin', // 分享服務提供商(即weixin|qq|sinaweibo)
scene: "WXSceneSession", //分享到聊天界面
type: 5, //分享形式 5:小程序
imageUrl: 'https://img-cdn-qiniu.dcloud.net.cn/uniapp/app/share-logo@3.spng',//官方規定分享圖比例是5:4,其它尺寸可能顯示不全。
title: '歡迎體驗uniapp',
miniProgram: {
id: 'gh_abcdefg', //微信小程序原始id
path: 'pages/index/index', //點擊鏈接進入的頁面
type: 0, //微信小程序版本類型,可取值: 0-正式版; 1-測試版; 2-體驗版。 默認值為0。
webUrl: 'http://uniapp.dcloud.io' //兼容低版本的網頁鏈接
},
success: ret => {
console.log(JSON.stringify(ret));
}
});
注:微信小程序原始id是指:微信公眾平台 > 設置 > 基本設置 > 賬號信息 > 原始ID
原始id啊,我TM把小程序id寫成了小程序AppID
step5
然后把其換成原始ID,接下來就終於步入正軌
但是報微信開放平台APP沒有和小程序在同一個賬戶下
這個簡單,我覺得是配置問題,然后在開放平台上綁定這個小程序,就ok了,大功告成。
分享終於成功了。心累
總結
總的來說,使用uni-app框架在APP端分享到微信首先需要在微信開放平台審核你的應用並配置好私鑰MD5值,MD5值必須得沒有冒號的全小寫,跟打包的證書簽名一致(去掉冒號轉小寫即可)。然后在打包文件配置微信開放平台申請的APPID,即可打通分享。
如果是要分享到小程序頁面,則需要在開放平台關聯小程序的原始id。然后再調用api即可