H5跳轉小程序頁面/wx-open-launch-weapp/

外部的H5已經可以跳轉小程序啦,也可以跳轉app啦,讓我們一起學習一下吧!
🙂🙂🙂

重要重要重要

我們編寫的H5頁面一定要放在服務器上,不然看不見效果!!!
這個必須是微信瀏覽器訪問!!!
此功能的開放對象:
已認證的服務號,服務號綁定“JS接口安全域名”下的網頁可使用此標籤跳轉任意合法合規的小程序。
已認證的非個人主體的小程序,使用小程序雲開發的靜態網站託管綁定的域名下的網頁,可以使用此標籤跳轉任意合法合規的小程序。
官方文檔:微信官方文檔:開放標籤wx-open-launch-weapp的使用




第一步

我們按照文檔的意思先引入
1.js文件,必須是1.6版本及以上:<script src="https://res.wx.qq.com/open/js/jweixin-1.6.0.js"></script>
2.我們的配置信息:提示:這裏的話我們需要後端一起哦,appid可以在頁面上寫死,我們的timestamp/nonceStr/signature需要後端給傳值,jsApiList這個我們可以隨便給個js接口列表,可查看:js接口列表,openTagList這個是使用開放標籤列表,必填wx-open-launch-weapp;

wx.config({
   
   
  debug: true, // 開啓調試模式,調用的所有api的返回值會在客戶端alert出來,若要查看傳入的參數,可以在pc端打開,參數信息會通過log打出,僅在pc端時纔會打印
  appId: '', // 必填,公衆號的唯一標識
  timestamp: , // 必填,生成簽名的時間戳
  nonceStr: '', // 必填,生成簽名的隨機串
  signature: '',// 必填,簽名
  jsApiList: [], // 必填,需要使用的JS接口列表
  openTagList: [] // 可選,需要使用的開放標籤列表,例如['wx-open-launch-app']
});

官方給的用例:
提示:username小程序的原始id,和微信小程序的id是不一樣的,微信小程序的id是WX開頭哦;path這個可以給死的路徑,就給都不是的時候跳轉頁面吧!

<wx-open-launch-weapp
  id="launch-btn"
  username="gh_xxxxxxxx"
  path="pages/home/index.html?user=123&action=abc"
>
  <template>
    <style>.btn {
   
    padding: 12px }</style>
    <button class="btn">打開小程序</button>
  </template>
</wx-open-launch-weapp>
<script>
  var btn = document.getElementById('launch-btn');
  btn.addEventListener('launch', function (e) {
   
   
    console.log('success');
  });
  btn.addEventListener('error', function (e) {
   
   
    console.log('fail', e.detail);
  });
</script>
App跳轉按鈕:

第二步

基礎的我們已經搭建好了,接下來我們就需要去配置一些信息啦,這一步我們按照文本來就行;

第三步

我們調用後端接口把頁面完整,如圖:

$(function () {
   
   
				//=== 這裏僅僅是獲取 config 的參數以及簽名=== start
				$.ajax({
   
   
					url: "#接口的地址",
					type: "請求方式",
					contentType: 'application/json;charSet=UTF-8',
					dataType: "json",
					data: JSON.stringify(thisurl),
					success: function (data) {
   
   
						wx.config({
   
   
							// debug: false, // 調試時可開啓, 調通了就關啦
							appId: "#", // 必填,公衆號的唯一標識
							timestamp: data.data.timestamp, // 必填,生成簽名的時間戳
							nonceStr: data.data.noncestr, // 必填,生成簽名的隨機串
							signature: data.data.signature, // 必填,生成簽名
							jsApiList: ['getLocation',
								'onMenuShareTimeline',
								'onMenuShareAppMessage'],
							openTagList: ['wx-open-launch-weapp'],
						});
					}
				});
			});

注意哦:

  1. 我們的樣式寫在插槽裏面哦,儘量不要寫定位哦;
  2. wx-open-launch-weapp這個是父元素,裏面有個ID,可以給它設置一些定位的元素,還有就是我的按鈕在手機上一直不出來,然後我在這個父元素加上了樣式後,我的按鈕就出來啦;

第四步

你可能會遇到的錯誤,這裏是我遇到的一些錯誤哦

  1. 提示無效的標籤,對此,我們檢查一下:首先看簽名算法正確嗎?有一個網站檢查算法正確:簽名算法檢查網站,如果正確,我們看一下我們的config裏面的S是不是大寫,然後我們再看一下我們的url傳給後端進行簽名的參數是否是動態獲取的,如果不是可以用:var thisurl = { "url": window.location.href.split("#")[0] };這是去了#的,url我們只是傳給後端進行簽名的參數,我們可以隨便給一個網頁,只要是動態獲取就行;最後就是我們的appid要與後端一致,必須是我們的小程序的appid哦;如果還不行的話,那就是配置問題了;
  2. 還有一個是白名單的問題,這個也是配置問題;

到這裏你就可以實現H跳轉啦,恭喜你哦,學會了一項新技術;

🎉🎉🎉🎉🎉🎉🎉🎉🎉🎉🎉🎉🎉🎉

你可能需要進行微信環境判斷

function isWeixin() {
   
   
			var ua = navigator.userAgent.toLowerCase();
			if (ua.match(/MicroMessenger/i) == "micromessenger") {
   
   
				return true;
			} else {
   
   
				alert('請打開微信瀏覽器');
				return false;
			}``

你可能需要的得到id的方法

	//獲取url的id
		function getParams(key) {
   
   
			var result = {
   
   };
			var paramStr = encodeURI(window.document.location.search);
			if (paramStr) {
   
   
				paramStr = paramStr.substring(1);
				var params = paramStr.split('&');
				for (var p = 0; p < params.length; p++) {
   
   
					result[params[p].split('=')[0]] = unescape(params[p].split('=')[1]);
				}
			}
			return result[key];
		}

你可能需要對多條頁面進行判斷,然後跳一個具體的頁面

//定義你的數組,這裏多條數據:{
   
   path:###,id:###}
var pathParams = [];
	//這裏我們獲取到當前的url,因爲我們訪問路徑後有帶參數,這個參數就是ID=什麼,所以我們可以使用上面得到id的方法去得到當前url的id
	var thispath = window.location.href;
	//indexof的方法大家可以去看看
	if (thispath.indexOf('id') < 0) {
   
   
		//沒有id的時候跳什麼地方
	} else {
   
   
		//這裏是我們定義我們的跳轉路徑,因爲上面是寫死的
		var paths =document.getElementById("launch-btn").getAttribute("path");
		//我們找到它的id
		var id = getParams('id');
		//進行對比
		//filter 過濾到滿足條件的  返回一個數組  
		let data=pathParams.filter(e=>e.id==id);
		//判斷一下數組是否存在數據  如果存在 跳轉到指定頁面
		if(data.length>0){
   
    
			$(function(){
   
   
					path=data[0].path+"?id="+data[0].id;
					//替換
					document.getElementById("launch-btn").setAttribute("path",path);
			})
		}else{
   
   
			//有id沒有匹配到的時候
		}
		//注意這個getAttribute,和setAttribute可以去官方看看怎麼使用哦

到這裏我們的H5跳轉小程序就比較完善啦
在不是微信環境的時候會給到提示請打開我們的微信瀏覽器,可以跳到具體頁面;
哈哈,這是我的經歷啦,代碼就不全部展示啦,大家一定要想一想再編寫哦,不要複製!!!這樣子纔可以進步哦!!!
如果你遇到了問題也可以在下面評論哦,看到會回覆你的
加油啦~
👍👍👍👍👍👍👍👍👍👍👍👍👍👍👍👍👍👍👍👍
祝大家聖誕節快樂哦✨





發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章