av一区二区在线观看_亚洲男人的天堂网站_日韩亚洲视频_在线成人免费_欧美日韩精品免费观看视频_久草视

您的位置:首頁(yè)技術(shù)文章
文章詳情頁(yè)

基于vue hash模式微信分享#號(hào)的解決

瀏覽:141日期:2022-06-11 16:35:23

看代碼吧~

// 問(wèn)題描述在微信中分享到朋友圈或好友時(shí),分享出去的路由被破壞,打開(kāi)分享的鏈接,路由中的“#”會(huì)被去掉并追加?fromTimeline之類(lèi)的后綴參數(shù),這就造成了分享出去的鏈接只能進(jìn)入首頁(yè),無(wú)法正常跳轉(zhuǎn)到其他路由。 // 獲取簽名 this.$ajax.post(this.apiUrl+'/api/wxShare/getWxConfig', this.$qs.stringify({'url':window.location.href.split(’#’)[0]})).then((res) => {//有人說(shuō)要加轉(zhuǎn)譯encodeURIComponent本人沒(méi)加具體跟你們的后臺(tái)協(xié)商 if (res.data.status.code === ’0000’) { wx.config({ debug: false, appId: res.data.data.appid, timestamp: res.data.data.timestamp, nonceStr: res.data.data.nonceStr, signature: res.data.data.signature, jsApiList: [’onMenuShareTimeline’,’onMenuShareAppMessage’ ] }); } }) //處理驗(yàn)證失敗的信息 wx.error(function (res) { alert(’驗(yàn)證失敗返回的信息:’,res); }); console.log(window.location.href.split(’#’)[0]) wx.ready(function () { // 分享給朋友 wx.onMenuShareAppMessage({ title: ’這是標(biāo)題’, // 分享標(biāo)題 desc: '這是測(cè)試的數(shù)據(jù)', // 分享描述 link: window.location.href.split(’#’)[0]+’#’+window.location.href.split(’#’)[1], // 分享鏈接!這里是關(guān)鍵 因?yàn)槲⑿艜?huì)把我們分享的鏈接截取掉 我在這里手動(dòng)拼接上 imgUrl: ’’, // 分享圖標(biāo) type: ’’, // 分享類(lèi)型,music、video或link,不填默認(rèn)為link dataUrl: ’’, // 如果type是music或video,則要提供數(shù)據(jù)鏈接,默認(rèn)為空 success: function () { window.alert(’已分享給好友’); }, cancel: function () { // 用戶(hù)取消分享后執(zhí)行的回調(diào)函數(shù) }, fail: function (res) { window.alert(JSON.stringify(res)); } }); // 分享到朋友圈 wx.onMenuShareTimeline({ title: ’這是標(biāo)題’, // 分享標(biāo)題 desc: '這是測(cè)試的數(shù)據(jù)', // 分享描述 link: window.location.href.split(’#’)[0]+’#’+window.location.href.split(’#’)[1], // 分享鏈接 success: function () { window.alert(’已分享到朋友圈’); }, cancel: function () { }, fail: function (res) { window.alert(JSON.stringify(res)); } });

補(bǔ)充知識(shí):解決video標(biāo)簽播放在微信瀏覽器中自動(dòng)全屏的坑(vue-video-player使用后續(xù))

屬性熟悉

下面是微信video中幾個(gè)Attribute的作用

poster=“l(fā)oadbg.jpg” : 視頻封面

x-webkit-airplay=“allow” : 允許iOS的airplay

x5-video-player-type=“h5” : 啟用x5內(nèi)核的播放器,是微信安卓版特性,另外在X5內(nèi)核里,video是單獨(dú)的一個(gè)view,會(huì)覆蓋在任何元素之上,據(jù)說(shuō)是為了統(tǒng)一用戶(hù)體驗(yàn),加上這個(gè)屬性之后,也可以讓其他元素浮在video上面了

x5-playsinline=“true”: 在x5內(nèi)核的播放器中小屏播放

x5-video-player-fullscreen=“true”: 全屏設(shè)置,設(shè)置為 true 是防止橫屏

x5-video-orientation=“portraint”: 播放方向,landscape橫屏,portraint豎屏,默認(rèn)值為豎屏

webkit-playsinline=“true”: 這個(gè)屬性是iOS中設(shè)置可以讓視頻在小窗內(nèi)播放,也就是不是全屏播放

playsinline=“true”: IOS微信瀏覽器支持小窗內(nèi)播放

思路與初嘗試

上面屬性熟悉后,有了些思路, 不就是把上面要的屬性都寫(xiě)一遍嗎,這樣iOS端和android端微信都能起作用, 然鵝, 實(shí)際情況并非如此。 經(jīng)過(guò)我無(wú)數(shù)次嘗試, 總結(jié)出就是得分開(kāi)寫(xiě)!!

代碼修改

之前:playsinline='playsinline'這里是true寫(xiě)死的,現(xiàn)在改為計(jì)算屬性playsinline(),代碼如下

<video-player ref='videoPlayer' :options='playerOptions' :playsinline='playsinline' customEventName='customstatechangedeventname' @play='onPlayerPlay($event)' @pause='onPlayerPause($event)' @ended='onPlayerEnded($event)' @waiting='onPlayerWaiting($event)' @playing='onPlayerPlaying($event)' @loadeddata='onPlayerLoadeddata($event)' @timeupdate='onPlayerTimeupdate($event)' @canplay='onPlayerCanplay($event)' @canplaythrough='onPlayerCanplaythrough($event)' @statechanged='playerStateChanged($event)' @ready='playerReadied'> </video-player>

添加playsinline()這個(gè)計(jì)算屬性,原因是在安卓和iOS端微信使用的內(nèi)核不同,所需要的attribute也不同,嘗試后,采用x5內(nèi)核返回false,反之為true

computed: { playsinline(){ var ua = navigator.userAgent.toLocaleLowerCase(); //x5內(nèi)核 if (ua.match(/tencenttraveler/) != null || ua.match(/qqbrowse/) != null) { return false }else{ //ios端 return true } } },

配合jq工具,繼續(xù)添加兩個(gè)端所需的屬性

//在vue-video-player的onPlayerCanplay(視頻可播放)這個(gè)方法中添加回調(diào)onPlayerCanplay(player) { // console.log(’player Canplay!’, player) //解決自動(dòng)全屏 var ua = navigator.userAgent.toLocaleLowerCase(); //x5內(nèi)核 if (ua.match(/tencenttraveler/) != null || ua.match(/qqbrowse/) != null) {$(’body’).find(’video’).attr(’x-webkit-airplay’,true).attr(’x5-playsinline’,true).attr(’webkit-playsinline’,true).attr(’playsinline’,true) }else{ //ios端 $(’body’).find(’video’).attr(’webkit-playsinline’,'true').attr(’playsinline’,'true') } }

總結(jié)

以區(qū)分兩個(gè)端內(nèi)核的不同,按需添加所需的Attribute

':playsinline'組件中自定義屬性按內(nèi)核不同按需傳值, x5內(nèi)核為false,反之為true然后來(lái)渲染組件(具體原理有待挖掘)

以上這篇基于vue hash模式微信分享#號(hào)的解決就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持好吧啦網(wǎng)。

標(biāo)簽: 微信
相關(guān)文章:
主站蜘蛛池模板: 黄网站涩免费蜜桃网站 | 国产99精品 | 99re在线视频| 国产午夜一级 | 在线观看第一区 | 国产夜恋视频在线观看 | 日韩精品一区二区在线 | 国产蜜臀97一区二区三区 | 免费看黄色小视频 | 男人影音 | 欧美日韩国产在线观看 | 欧洲免费视频 | 成年人在线视频 | 欧美国产日韩在线观看 | 精品免费视频 | 丁香久久 | 欧美天堂在线 | 欧美黄视频 | 7799精品视频天天看 | 精品视频成人 | 国产美女久久 | 伊人色综合久久久天天蜜桃 | 国产精品久久久久久久久久软件 | 国产精品精品久久久 | 久久久福利 | 一区二区三区在线免费观看 | 国产日韩欧美一区二区在线播放 | 精品国产黄a∨片高清在线 成人区精品一区二区婷婷 日本一区二区视频 | 一区二区三区小视频 | 欧美日韩亚洲国产 | 国产成人综合一区二区三区 | 免费在线看黄 | 91精品国产综合久久婷婷香蕉 | www.久久影视 | 黄a在线观看 | 最新国产精品精品视频 | 91精品久久久久久久久久入口 | 日本超碰| 高清免费av | 久久爱综合 | 污免费网站 |