电脑知识|欧美黑人一区二区三区|软件|欧美黑人一级爽快片淫片高清|系统|欧美黑人狂野猛交老妇|数据库|服务器|编程开发|网络运营|知识问答|技术教程文章 - 好吧啦网

您的位置:首頁技術文章
文章詳情頁

基于vue hash模式微信分享#號的解決

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

看代碼吧~

// 問題描述在微信中分享到朋友圈或好友時,分享出去的路由被破壞,打開分享的鏈接,路由中的“#”會被去掉并追加?fromTimeline之類的后綴參數,這就造成了分享出去的鏈接只能進入首頁,無法正常跳轉到其他路由。 // 獲取簽名 this.$ajax.post(this.apiUrl+'/api/wxShare/getWxConfig', this.$qs.stringify({'url':window.location.href.split(’#’)[0]})).then((res) => {//有人說要加轉譯encodeURIComponent本人沒加具體跟你們的后臺協商 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’ ] }); } }) //處理驗證失敗的信息 wx.error(function (res) { alert(’驗證失敗返回的信息:’,res); }); console.log(window.location.href.split(’#’)[0]) wx.ready(function () { // 分享給朋友 wx.onMenuShareAppMessage({ title: ’這是標題’, // 分享標題 desc: '這是測試的數據', // 分享描述 link: window.location.href.split(’#’)[0]+’#’+window.location.href.split(’#’)[1], // 分享鏈接!這里是關鍵 因為微信會把我們分享的鏈接截取掉 我在這里手動拼接上 imgUrl: ’’, // 分享圖標 type: ’’, // 分享類型,music、video或link,不填默認為link dataUrl: ’’, // 如果type是music或video,則要提供數據鏈接,默認為空 success: function () { window.alert(’已分享給好友’); }, cancel: function () { // 用戶取消分享后執行的回調函數 }, fail: function (res) { window.alert(JSON.stringify(res)); } }); // 分享到朋友圈 wx.onMenuShareTimeline({ title: ’這是標題’, // 分享標題 desc: '這是測試的數據', // 分享描述 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)); } });

補充知識:解決video標簽播放在微信瀏覽器中自動全屏的坑(vue-video-player使用后續)

屬性熟悉

下面是微信video中幾個Attribute的作用

poster=“loadbg.jpg” : 視頻封面

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

x5-video-player-type=“h5” : 啟用x5內核的播放器,是微信安卓版特性,另外在X5內核里,video是單獨的一個view,會覆蓋在任何元素之上,據說是為了統一用戶體驗,加上這個屬性之后,也可以讓其他元素浮在video上面了

x5-playsinline=“true”: 在x5內核的播放器中小屏播放

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

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

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

playsinline=“true”: IOS微信瀏覽器支持小窗內播放

思路與初嘗試

上面屬性熟悉后,有了些思路, 不就是把上面要的屬性都寫一遍嗎,這樣iOS端和android端微信都能起作用, 然鵝, 實際情況并非如此。 經過我無數次嘗試, 總結出就是得分開寫!!

代碼修改

之前:playsinline='playsinline'這里是true寫死的,現在改為計算屬性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()這個計算屬性,原因是在安卓和iOS端微信使用的內核不同,所需要的attribute也不同,嘗試后,采用x5內核返回false,反之為true

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

配合jq工具,繼續添加兩個端所需的屬性

//在vue-video-player的onPlayerCanplay(視頻可播放)這個方法中添加回調onPlayerCanplay(player) { // console.log(’player Canplay!’, player) //解決自動全屏 var ua = navigator.userAgent.toLocaleLowerCase(); //x5內核 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') } }

總結

以區分兩個端內核的不同,按需添加所需的Attribute

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

以上這篇基于vue hash模式微信分享#號的解決就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持好吧啦網。

標簽: 微信
相關文章:
主站蜘蛛池模板: 河南砖机首页-全自动液压免烧砖机,小型砌块水泥砖机厂家[十年老厂] | 一体化污水处理设备_生活污水处理设备_全自动加药装置厂家-明基环保 | 江苏密集柜_电动_手动_移动_盛隆柜业江苏档案密集柜厂家 | 灰板纸、灰底白、硬纸板等纸品生产商-金泊纸业 | 北京征地律师,征地拆迁律师,专业拆迁律师,北京拆迁律师,征地纠纷律师,征地诉讼律师,征地拆迁补偿,拆迁律师 - 北京凯诺律师事务所 | 杜甫仪器官网|实验室平行反应器|升降水浴锅|台式低温循环泵 | 乙炔气体报警装置|固定式氯化氢检测仪|河南驰诚电气百科 | 深圳市宏康仪器科技有限公司-模拟高空低压试验箱-高温防爆试验箱-温控短路试验箱【官网】 | 液氨泵,液化气泵-淄博「亚泰」燃气设备制造有限公司 | 奶茶加盟,奶茶加盟店连锁品牌-甜啦啦官网 | 岩石钻裂机-液压凿岩机-劈裂机-挖改钻_湖南烈岩科技有限公司 | 电子厂招聘_工厂招聘_普工招聘_小时工招聘信息平台-众立方招工网 | 十二星座查询(性格特点分析、星座运势解读) - 玄米星座网 | 闸阀_截止阀_止回阀「生产厂家」-上海卡比阀门有限公司 | 非甲烷总烃分析仪|环控百科| 老城街小面官网_正宗重庆小面加盟技术培训_特色面馆加盟|牛肉拉面|招商加盟代理费用多少钱 | 江西自考网| 光栅尺厂家_数显表维修-苏州泽升精密机械 | 洁净实验室工程-成都手术室净化-无尘车间装修-四川华锐净化公司-洁净室专业厂家 | 蒸压釜_蒸养釜_蒸压釜厂家-山东鑫泰鑫智能装备有限公司 | 上海小程序开发-小程序制作-上海小程序定制开发公司-微信商城小程序-上海咏熠 | 金库门,金库房,金库门厂家,金库门价格-河北特旺柜业有限公司 | 大型冰雕-景区冰雕展制作公司,3D创意设计源头厂家-[赛北冰雕] | 汽车整车综合环境舱_军标砂尘_盐雾试验室试验箱-无锡苏南试验设备有限公司 | 爱佩恒温恒湿测试箱|高低温实验箱|高低温冲击试验箱|冷热冲击试验箱-您身边的模拟环境试验设备技术专家-合作热线:400-6727-800-广东爱佩试验设备有限公司 | 北京三友信电子科技有限公司-ETC高速自动栏杆机|ETC机柜|激光车辆轮廓测量仪|嵌入式车道控制器 | 智能气瓶柜(大型气瓶储存柜)百科 | 短信营销平台_短信群发平台_106短信发送平台-河南路尚 | 渣油泵,KCB齿轮泵,不锈钢齿轮泵,重油泵,煤焦油泵,泊头市泰邦泵阀制造有限公司 | 山东臭氧发生器,臭氧发生器厂家-山东瑞华环保设备 | 物联网卡_物联网卡购买平台_移动物联网卡办理_移动联通电信流量卡通信模组采购平台? | 重庆网站建设,重庆网站设计,重庆网站制作,重庆seo,重庆做网站,重庆seo,重庆公众号运营,重庆小程序开发 | 上海风淋室_上海风淋室厂家_上海风淋室价格_上海伯淋 | 优宝-汽车润滑脂-轴承润滑脂-高温齿轮润滑油脂厂家 | 钛合金标准件-钛合金螺丝-钛管件-钛合金棒-钛合金板-钛合金锻件-宝鸡远航钛业有限公司 | 铝板冲孔网,不锈钢冲孔网,圆孔冲孔网板,鳄鱼嘴-鱼眼防滑板,盾构走道板-江拓数控冲孔网厂-河北江拓丝网有限公司 | 紧急切断阀_气动切断阀_不锈钢阀门_截止阀_球阀_蝶阀_闸阀-上海上兆阀门制造有限公司 | 阁楼货架_阁楼平台_仓库仓储设备_重型货架_广州金铁牛货架厂 | 防爆型气象站_农业气象站_校园气象站_农业四情监测系统「山东万象环境科技有限公司」 | 沟盖板_复合沟盖板厂_电力盖板_树脂雨水篦子-淄博拜斯特 | 信阳网站建设专家-信阳时代网联-【信阳网站建设百度推广优质服务提供商】信阳网站建设|信阳网络公司|信阳网络营销推广 |