vue 위챗 공식계정 H5 공유Hash 모드에서 안드로이드는 홈페이지 질문만 공유할 수 있습니다.

3710 단어 위챗 공주
vue 위챗 공중번호 H5 공유해시 모드에서는 ios 공유 경로가 정상이지만 안드로이드에 도착하면 홈페이지만 공유할 수 있다.다음은 경로 문제입니다. 위챗 브라우저의 Hash 모드에서 경로는 #이고 위챗 브라우저는 #을 찾아서 파라미터를 추가합니다. 예를 들어 다음과 같습니다.https://migxin.mypro.com/?from=timeline#/product_details이런 경우 지정된 페이지로 이동할 수 없고 여러 가지 방법을 생각해서 재구성 경로를 캡처하는 데 실패했다. 결국 html의 중간 페이지를 만들어서 페이지를 이동해서 이Hash모드의 난감함을 해결할 수 밖에 없었다.


		function jump () {
			var arr = window.location.search.split('?')[1].split('&');
		
			var name = arr[0].split('=')[1];
			var id = arr[1].split('=')[1];
			var img = arr[2].split('=')[1];
			img = 'https://cas.topvj.net/'+img;
			var _img = document.getElementById('img');
			_img.setAttribute('src',img);
			var url = 'https://cas.topvj.net/cas_h5/#/'+name+'/'+id;
		 	
		 	var a = document.getElementById('jump');
		 	a.setAttribute('href',url);
		 	var num = 5;
		 	var timer = setInterval(function(){			 			 				  		
			 	num --;
			 	var time = document.getElementById('timer');
			 	if (num > 0) {
			 			time.innerHTML = num+' ';
			 	}else{	
			 			clearInterval(timer)
			 			window.location.href = url
			 	}	
		 	},1000)
		 	
		}			
		function share () {
			let url_cofing = encodeURIComponent(window.location.href)
					//console.log(url_cofing)
					$.get(`..?url_cofing=${url_cofing}`
						,function(res){
							var res = JSON.parse(res);
							if (res.code == 0) {
								let result = res.data
								if (result != null) {
									wx.config({
									    debug: false, //       ,     api         alert  ,         ,   pc   ,       log  ,  pc      。
									    appId: result.appid, //   ,        
									    timestamp: result.timestamp, //   ,        
									    nonceStr: result.noncestr, //   ,        
									    signature: result.signature,//   ,  
									    jsApiList: [
									    'updateAppMessageShareData',
									    'updateTimelineShareData',
									    'onMenuShareWeibo'
									    ] //   ,     JS    
									});
								}
							}
					})
			
			var arr = window.location.search.split('?')[1].split('&');
			var img = arr[2].split('=')[1];
			var _title = arr[3].split('=')[1];
			var content = arr[4].split('=')[1];
			
			var title = decodeURIComponent(_title);
			var desc = decodeURIComponent(content);
			var _url = window.location.href;
			var imgUrl = 'https://cas.topvj.net/'+img;
		
			//console.log(shareData)
			//     ” “   QQ
			wx.ready(function () {   //                 
		    wx.updateAppMessageShareData({ 
		        title: title, //     
		        desc: desc, //     
		        link: _url, //     ,                     JS      
		        imgUrl: imgUrl, //     
		        success: function () {
		          //alert('      ')
		        }
		    })
			})
			//      ” “   QQ  
			wx.ready(function () {      //                 
		    wx.updateTimelineShareData({ 
		        title: title, //     
		        link: _url, //     ,                     JS      
		        imgUrl: imgUrl, //     
		        success: function () {
		        	
		        }
		    })
			})
		
			//       
			wx.ready(function () {
				wx.onMenuShareWeibo({
					title: title, //     
					desc: desc, //     
					link: _url, //     
					imgUrl: imgUrl, //     
					success: function () {
					//               
					},
					cancel: function () {
					//               
					}
				})
			})
			
			wx.error(function(err) {
		    console.log(JSON.stringify(err))
		  })
		}
		window.onload = function () {
			share();
			jump();				
		}
	

이 js도 동시에 해결된 중간 페이지 공유 문제입니다. 점프 데이터는 공유를 시작하는 페이지 URL에서 전달하여 사용해야 합니다.중간 페이지의 HTML과 css는 쓰지 않겠습니다. 여러분 자유롭게 발휘하세요!더 좋은 해결 방법이 있으면 저에게 메시지를 남겨 주세요!

좋은 웹페이지 즐겨찾기