摘要:折騰了一整天,官方文檔看了好幾遍,網(wǎng)上基本上所有的方法都試了,發(fā)現(xiàn)都沒(méi)什么卵用,最后打開的分享頁(yè)面,再?gòu)?fù)制分享頁(yè)面的鏈接,發(fā)現(xiàn)鏈接是這個(gè)格式,相比之下只是多了個(gè)字段,抱著試一試的心態(tài),在當(dāng)前鏈接中添加,發(fā)現(xiàn)所有問(wèn)題都迎刃而解。
最近在做某個(gè)需要在微信中打開的項(xiàng)目,部分頁(yè)面會(huì)通過(guò)微信分享或復(fù)制鏈接分享給其他人,然后就遇到了以下坑:
1.IOS端復(fù)制鏈接或在其他瀏覽器中打開時(shí),假如原網(wǎng)站鏈接本來(lái)應(yīng)該是"http://xxx.xxxx.xxx/#/abcd",但復(fù)制和在其他瀏覽器中打開的鏈接都是"http://xxx.xxxx.xxx/#/"
2.android端分享頁(yè)面時(shí),wx.onMenuShareAppMessage配置沒(méi)問(wèn)題,分享后回調(diào)函數(shù)顯示調(diào)用成功,但分享的鏈接打開依舊是"http://xxx.xxxx.xxx/#/"頁(yè)(官方說(shuō)6.7.2分享用updateAppMessageShareData接口,但是引入1.4.0版本js-sdk還是顯示這個(gè)接口沒(méi)法用)。
折騰了一整天,官方文檔看了好幾遍,網(wǎng)上基本上所有的方法都試了,發(fā)現(xiàn)都沒(méi)什么卵用,最后打開IOS的分享頁(yè)面,再?gòu)?fù)制IOS分享頁(yè)面的鏈接,發(fā)現(xiàn)鏈接是這個(gè)格式"http://xxx.xxxx.xxx/?from=singlemessage#/abcd",相比之下只是多了個(gè)"?from=singlemessage"字段,抱著試一試的心態(tài),在當(dāng)前鏈接中添加"?from=singlemessage",發(fā)現(xiàn)所有問(wèn)題都迎刃而解。代碼如下:
.... ....wx.config配置.... .... const ua = window.navigator.userAgent.toLowerCase() const isIOS = !!ua.match(/iphone|ipad/) const isWechat = ua.includes("micromessenger") var firstEnter = true router.beforeEach((to, from, next) => { if (isWechat) { let toPath = location.origin + (location.pathname + (location.hash ? "?from=singlemessage#" : "") + to.fullPath).replace("http://", "/") if (isIOS && location.href !== toPath) { if (firstEnter) { // 他人打開分享頁(yè)面后,else中的內(nèi)容會(huì)讓第一個(gè)頁(yè)面加載兩次(應(yīng)該是微信默認(rèn)跳轉(zhuǎn)引起的,else中明明已經(jīng)禁用了vue的跳轉(zhuǎn)) firstEnter = false } else { // 不采用vue默認(rèn)跳轉(zhuǎn)方式,使用原生跳轉(zhuǎn),解決復(fù)制鏈接或在其他瀏覽器中打開時(shí),鏈接錯(cuò)誤 next(false) location.href = toPath return } } let config = { title: to.meta.title || "", desc: location.href, link: toPath, imgUrl: "", type: "link", dataUrl: "" } wx.ready(function () { wx.onMenuShareTimeline(config) wx.onMenuShareAppMessage(config) }) } next() })
猜測(cè)微信內(nèi)部應(yīng)該會(huì)對(duì)域名是mp.weixin.qq.com以外的鏈接進(jìn)行判斷,若沒(méi)有"?from=singlemessage"字段就直接跳轉(zhuǎn)到首頁(yè)?
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://m.specialneedsforspecialkids.com/yun/103984.html
摘要:你要是問(wèn)我為什么會(huì)出現(xiàn)這種情況,等我什么時(shí)候進(jìn)微信團(tuán)隊(duì)了,我再給大家解答。。。 很久沒(méi)有寫文章了,最近項(xiàng)目是基于微信公眾號(hào)的Vue項(xiàng)目,有一個(gè)非常重要的分享功能,不搞不知道一搞不得了,發(fā)現(xiàn)vue-router和微信SDK配置有很大的兼容性問(wèn)題,翻遍文檔,社區(qū),博客,都沒(méi)有找到可以適合解決我這個(gè)問(wèn)題的方法,最后是我們一起一個(gè)一個(gè)方法、一個(gè)一個(gè)api嘗試才找到解決辦法,現(xiàn)在和大家分享一下我...
摘要:微信分享簽名錯(cuò)誤單頁(yè)應(yīng)用模式下微信分享一直提示簽名錯(cuò)誤按照微信官網(wǎng)文檔,已經(jīng)引入,正確的配置安全域名,后臺(tái)開發(fā)人員生成的簽名也通過(guò)微信簽名工具驗(yàn)證,但是前端的自定義分享一直報(bào)簽名錯(cuò)誤,沒(méi)有辦法自定義分享,如果確保了哪些基本配置沒(méi)有問(wèn)題,并且 微信分享簽名錯(cuò)誤invalid signature vue單頁(yè)應(yīng)用history模式下微信分享一直提示簽名錯(cuò)誤invalid signature ...
摘要:我個(gè)人比較推薦的方法是或者安卓手機(jī)的這種方式,比較簡(jiǎn)單方便快捷,然后根據(jù)具體的環(huán)境再選擇更為合適的調(diào)試方法。 本文首次發(fā)表于本人的個(gè)人博客:http://cherryblog.site/ ,歡迎大家到我的博客查看更多文章~ 前言 在開發(fā)中前端免不了要進(jìn)行移動(dòng)端的開發(fā),然而在電腦上看的樣式和手機(jī)上還是有一定的差距的,因?yàn)槭謾C(jī)上有頂部的狀態(tài)欄和底部的菜單欄,特別是在qq內(nèi)置瀏覽器中打開,差...
閱讀 2674·2021-11-24 09:38
閱讀 1985·2019-08-30 15:53
閱讀 1246·2019-08-30 15:44
閱讀 3237·2019-08-30 14:10
閱讀 3588·2019-08-29 16:29
閱讀 1808·2019-08-29 16:23
閱讀 1107·2019-08-29 16:20
閱讀 1476·2019-08-29 11:13