這篇文章主要介紹了微信端html5頁面呼叫分享介面範例的相關資料,內容挺不錯的,現在分享給大家,也給大家做個參考。
最近公司做了一個給學生投票的H5頁面,主要是在微信端使用,需要添加微信分享功能;
本文章主要是記錄調用微信分享介面需要注意的事項;
1、前端用的angular1框架,首先需要在index頁面引入微信介面檔;
<script src="http://res.wx.qq.com/open/js/jweixin-1.2.0.js"></script>
2、在myApp.run文件中寫微信分享函數,注意函數需要將目前頁面的url取得並解析,然後發給後端來產生對應簽名,直接上程式碼;
// 微信分享函数 function wxShare() { var url = $location.absUrl().split('#')[0]; wxServices.postWxShare(url).then(function (res) { if (res.data.code == 0) { var respanse = res.data.data; wx.config({ debug: false, // 开启调试模式,调用的所有api的返回值会在客户端alert出来,若要查看传入的参数,可以在pc端打开,参数信息会通过log打出,仅在pc端时才会打印。 appId: respanse.appId, timestamp: respanse.timestamp, // 必填,生成签名的时间戳 nonceStr: respanse.nonceStr, // 必填,生成签名的随机串 signature: respanse.signature,// 必填,签名 jsApiList: ['onMenuShareTimeline', 'onMenuShareAppMessage', 'onMenuShareQQ', 'onMenuShareWeibo', 'onMenuShareQZone']// 必填,需要使用的JS接口列表 }); } }) }
將當前url解析後,發給後端接口,後端需要將appId,時間戳,隨機字串和簽名返回,然後接口列表(jsApiList)根據需要自己手動添加,注意是一個數組的形式,我這裡只需要呼叫分享介面;
調試的時候,可以將debug更改為true,這樣在就每次調用微信接口的時候就會有接口信息alert出來,方便查看接口調用是否正常了;
3、在該函數後,自訂分享內容,程式碼如下;
wx.ready(function () { var obj = { title: 'SPBCN团体赛开始投票啦!', // 分享标题 desc: 'SPBCN团体赛开始投票了,快来为我们加油吧!', // 分享描述 link: 'http://dev.spbcn.org/wechat-vote-phone/redirect.html', // 分享链接,该链接域名或路径必须与当前页面对应的公众号JS安全域名一致 // 该链接是重定向链接,因为需要获取用户code,但是该链接又无法直接写微信获取code的链接, // 所以需要点击后重新加载新的页面,来实现重定向,重新打开获取code的微信链接,实现获取用户信息的功能; imgUrl: 'http://cdn.spbcn.org/img/logo-image.png', // 分享图标 fail: function (res) { alert(JSON.stringify(res)); } }; // 2.1 监听“分享给朋友”,按钮点击、自定义分享内容及分享结果接口 wx.onMenuShareAppMessage(obj); // 2.2 监听“分享到朋友圈”按钮点击、自定义分享内容及分享结果接口 wx.onMenuShareTimeline(obj); // 2.3 监听“分享到QQ”按钮点击、自定义分享内容及分享结果接口 wx.onMenuShareQQ(obj); // 2.4 监听“分享到微博”按钮点击、自定义分享内容及分享结果接口 wx.onMenuShareWeibo(obj); // 2.5 监听“分享到QZone”按钮点击、自定义分享内容及分享接口 wx.onMenuShareQZone(obj); })
wx.ready是在wx.config之後自動執行的,我是定義了一個分享內容的通用對象,然後直接調用即可,也可以根據需要來分別定義分享朋友、朋友圈、微博等的不同內容,具體查看微信接口文檔即可;
主要強調一下分享鏈接,該鏈接必須是你的公眾號設置的JS安全域名下的,不然無法分享成功;
分享失敗的表現是,分享鏈接圖片無法加載你自定義的圖片,分享標題也不對;
5、我這個項目是投票類的,所以需要每次點擊進來之後獲取用戶code,如果你只是分享文章,不需要用戶信息,直接將link更改為你的文章鏈接即可;
6、對於投票類,我這裡特殊處理了,就是重定向了該鏈接,大家都知道H5獲取微信用戶信息有兩種,一種是關注微信公眾號;另一種提示用戶需要獲取用戶公開訊息,用戶點擊確定即可。但這兩種都需要是按照微信的要求來拼接成特殊的微信鏈接,因此該域名是微信自帶的,就不是我們自己公眾號的JS安全域名了;
#7、所以,對於分享後的鏈接,如果還需要獲取用戶code,就要用其他方法實現,我用的是添加了一個空白頁面,在該頁面加載後跳轉微信獲取code的鏈接,http://dev.spbcn .org/wechat-vote-phone/redirect.html該連結是個空白頁面,該頁面程式碼如下;
window.onload = function () { // 重定向链接,跟微信公众号中获取用户code是一样的链接 window.location.href="https://open.weixin.qq.com/connect/oauth2/authorize?appid=公众号appid&redirect_uri=http%3A%2F%2Fdev.spbcn.org%2Fwechat-vote-phone?type=weixin&scope=snsapi_userinfo&response_type=code&state=STATE#wechat_redirect" }
8、該方法有弊端,就是多加了一個空白頁面,暫時沒想到好的辦法,歡迎大家留言;
9、如果不加這一步,分享出來的連結顯示正常,但是獲取不到code,後端就無法判斷用戶,導致無法限制用戶投票;
以上就是本文的全部內容,希望對大家的學習有所幫助,更多相關內容請關注PHP中文網!
相關推薦:
如何利用HTML5實作分享到微信好友朋友圈QQ好友QQ空間微博二維碼的功能
HTML5、Select下拉方塊右邊加圖示的實作程式碼(增進使用者體驗)
以上是如何在微信端html5頁面呼叫分享介面的詳細內容。更多資訊請關注PHP中文網其他相關文章!

H5和HTML5是不同的概念:HTML5是HTML的一個版本,包含新元素和API;H5是基於HTML5的移動應用開發框架。 HTML5通過瀏覽器解析和渲染代碼,H5應用則需要容器運行並通過JavaScript與原生代碼交互。

HTML5的關鍵元素包括、、、、、等,用於構建現代網頁。 1.定義頭部內容,2.用於導航鏈接,3.表示獨立文章內容,4.組織頁面內容,5.展示側邊欄內容,6.定義頁腳,這些元素增強了網頁的結構和功能性。

HTML5和H5沒有區別,H5是HTML5的簡稱。 1.HTML5是HTML的第五個版本,增強了網頁的多媒體和交互功能。 2.H5常用於指代基於HTML5的移動網頁或應用,適用於各種移動設備。

HTML5是超文本標記語言的最新版本,由W3C標準化。 HTML5引入了新的語義化標籤、多媒體支持和表單增強,提升了網頁結構、用戶體驗和SEO效果。 HTML5引入了新的語義化標籤,如、、、等,使網頁結構更清晰,SEO效果更好。 HTML5支持多媒體元素和,無需第三方插件,提升了用戶體驗和加載速度。 HTML5增強了表單功能,引入了新的輸入類型如、等,提高了用戶體驗和表單驗證效率。

如何寫出乾淨高效的HTML5代碼?答案是通過語義化標籤、結構化代碼、性能優化和避免常見錯誤。 1.使用語義化標籤如、等,提升代碼可讀性和SEO效果。 2.保持代碼結構化和可讀性,使用適當縮進和註釋。 3.優化性能,通過減少不必要的標籤、使用CDN和壓縮代碼。 4.避免常見錯誤,如標籤未閉合,確保代碼有效性。

H5通過多媒體支持、離線存儲和性能優化提升網頁用戶體驗。 1)多媒體支持:H5的和元素簡化開發,提升用戶體驗。 2)離線存儲:WebStorage和IndexedDB允許離線使用,提升體驗。 3)性能優化:WebWorkers和元素優化性能,減少帶寬消耗。

HTML5代碼由標籤、元素和屬性組成:1.標籤定義內容類型,用尖括號包圍,如。 2.元素由開始標籤、內容和結束標籤組成,如內容。 3.屬性在開始標籤中定義鍵值對,增強功能,如。這些是構建網頁結構的基本單位。

HTML5是構建現代網頁的關鍵技術,提供了許多新元素和功能。 1.HTML5引入了語義化元素如、、等,增強了網頁結構和SEO。 2.支持多媒體元素和,無需插件即可嵌入媒體。 3.表單增強了新輸入類型和驗證屬性,簡化了驗證過程。 4.提供了離線和本地存儲功能,提升了網頁性能和用戶體驗。


熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

Video Face Swap
使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

SublimeText3漢化版
中文版,非常好用

SublimeText3 英文版
推薦:為Win版本,支援程式碼提示!

SublimeText3 Linux新版
SublimeText3 Linux最新版

WebStorm Mac版
好用的JavaScript開發工具

mPDF
mPDF是一個PHP庫,可以從UTF-8編碼的HTML產生PDF檔案。原作者Ian Back編寫mPDF以從他的網站上「即時」輸出PDF文件,並處理不同的語言。與原始腳本如HTML2FPDF相比,它的速度較慢,並且在使用Unicode字體時產生的檔案較大,但支援CSS樣式等,並進行了大量增強。支援幾乎所有語言,包括RTL(阿拉伯語和希伯來語)和CJK(中日韓)。支援嵌套的區塊級元素(如P、DIV),