1. 程式人生 > 實用技巧 >微信網頁自定義分享wx.config

微信網頁自定義分享wx.config

具體參考:https://developers.weixin.qq.com/doc/offiaccount/OA_Web_Apps/JS-SDK.html#1

步驟一:繫結域名

先登入微信公眾平臺進入“公眾號設定”的“功能設定”裡填寫“JS介面安全域名”。

備註:登入後可在“開發者中心”檢視對應的介面許可權

步驟二:引入jweixin-module模組

直接使用npm在內網下載jweixin-module可能會因為超時而失敗。可以使用外網或者淘寶映象cnpm下載模組。

// 安裝cnpm(已經安裝cnpm請忽略):
npm install -g cnpm --registry=https://registry.npm.taobao.org
// 安裝jweixin-module
cnpm install jweixin-module

由於我是在.js檔案中引用的。 

在此.js檔案開頭引入模組:

var WeixinApi = require('@/node_modules/jweixin-module/lib/index.js')

 

步驟三:通過config介面注入許可權驗證配置

WeixinApi.config({
  debug: true, // 開啟除錯模式,呼叫的所有api的返回值會在客戶端alert出來,若要檢視傳入的引數,可以在pc端開啟,引數資訊會通過log打出,僅在pc端時才會列印。
  appId: '', // 必填,公眾號的唯一標識
  timestamp: , // 必填,生成簽名的時間戳
  nonceStr: '', // 必填,生成簽名的隨機串
  signature: '',// 必填,簽名
  jsApiList: [] // 必填,需要使用的JS介面列表
});

  

注意事項

  1. 簽名用的noncestr和timestamp必須與wx.config中的nonceStr和timestamp相同。

  2. 簽名用的url必須是呼叫JS介面頁面的完整URL。

  3. 出於安全考慮,開發者必須在伺服器端實現簽名的邏輯。

關於與簽名相關的引數和appid由後臺提供。

關於jsApiList配置(任選):

jsApiList:[

updateAppMessageShareData, //1.6.0 版介面, 分享到微信好友/qq好友

updateTimelineShareData,//1.6.0 版介面, 分享到微信朋友圈/qq空間

onMenuShareTimeline,//(即將廢棄)分享到微信好友

onMenuShareAppMessage,//(即將廢棄)分享到微信朋友圈

onMenuShareQQ,//(即將廢棄)分享到qq好友

onMenuShareWeibo,//分享到微博

onMenuShareQZone //分享到qq空間

]

jsApiList中選項還需要配套監聽(注意:link的引數該連結域名或路徑必須與當前頁面對應的公眾號JS安全域名一致,此連結不能帶#,h5路由使用hash的需要注意,有必要的話可以在跳轉後修改連結):
WeixinApi.onMenuShareTimeline({
		title: shareTitle, // 分享標題
		desc: descContent, // 分享描述
		link: url, // 分享連結,該連結域名或路徑必須與當前頁面對應的公眾號JS安全域名一致
		imgUrl: imgUrl,
		success: function (res) {
			// 使用者確認分享後執行的回撥函式
			uni.showToast({
				title: '分享成功'
			})
		},
		cancel: function () {
			// 使用者取消分享後執行的回撥函式
			uni.showToast({
				title: '分享失敗',
				icon: false
			})
		}
	});
 
	/* 分享給朋友 */
	WeixinApi.onMenuShareAppMessage({
		title: shareTitle, // 分享標題
		desc: descContent, // 分享描述
		link: url, // 分享連結,該連結域名或路徑必須與當前頁面對應的公眾號JS安全域名一致
		imgUrl: imgUrl, // 分享圖示
		// type: '', // 分享型別,music、video或link,不填預設為link
		// dataUrl: '', // 如果type是music或video,則要提供資料鏈接,預設為空
		success: function () {
			// 使用者確認分享後執行的回撥函式
			uni.showToast({
				title: '分享成功'
			})
		},
		 
		cancel: function () {
			// 使用者取消分享後執行的回撥函式
			uni.showToast({
				title: '分享失敗',
				icon: false
			})
		}
	});
 
	/*分享到qq */
	WeixinApi.onMenuShareQQ({ 
		title: shareTitle, // 分享標題
		desc: descContent, // 分享描述
		link: url, // 分享連結
		imgUrl: imgUrl, // 分享圖示
		success: function () {
			// 使用者確認分享後執行的回撥函式
			uni.showToast({
				title: '分享成功'
			})
		},
		cancel: function () {
			// 使用者取消分享後執行的回撥函式
			uni.showToast({
				title: '分享失敗',
				icon: false
			})
		}
	});
 
	/* 分享到qq空間 */
	WeixinApi.onMenuShareQZone({
		title: shareTitle, // 分享標題 
		desc: descContent, // 分享描述
		link: url, // 分享連結
		imgUrl: imgUrl, // 分享圖示
		success: function () {
			// 使用者確認分享後執行的回撥函式
			uni.showToast({
				title: '分享成功'
			})
		},
		cancel: function () {
			// 使用者取消分享後執行的回撥函式
			uni.showToast({
				title: '分享失敗',
				icon: false
			})
		} 
	});
	/* 分享到微博 */
	WeixinApi.onMenuShareWeibo({
		title: shareTitle, // 分享標題 
		desc: descContent, // 分享描述
		link: url, // 分享連結
		imgUrl: imgUrl, // 分享圖示
		success: function () {
			// 使用者確認分享後執行的回撥函式
			uni.showToast({
				title: '分享成功'
			})
		},
		cancel: function () {
			// 使用者取消分享後執行的回撥函式
			uni.showToast({
				title: '分享失敗',
				icon: false
			})
		}
	});

// ...具體看需求