微信內部瀏覽器私有接口 - WeixinJSBridge介紹


 
申請達人,去除贊助商鏈接

微信網頁進入,右上角有三個小點,沒錯,我們用到的就是它!我們只要通過將小點列表下的按鈕進行自定義,就可以隨心所欲的分享我們自己的內容了。

 注意:(WeixinJSBridge只能在微信內打開的網頁有效)

按鈕一之------發送給好友

  1. function sendMessage(){
  2.  
  3. WeixinJSBridge.on('menu:share:appmessage', function(argv){ alert("發送給好友"); });
  4.  
  5. }
這樣,只要在某處調用 sendMessage  函數就可以改變發送好友的按鈕響應了,再點擊,便會彈出“發送給好友字符串”,是不是很簡單。
 

分享函數

  1. WeixinJSBridge.invoke('sendAppMessage',{
  2. "appid":"", //appid 設置空就好了。
  3. "img_url": imgUrl, //分享時所帶的圖片路徑
  4. "img_width": "120", //圖片寬度
  5. "img_height": "120", //圖片高度
  6. "link":url, //分享附帶鏈接地址
  7. "desc":"我是一個介紹", //分享內容介紹
  8. "title":"標題,再簡單不過了。"
  9. }, function(res){/*** 回調函數,最好設置為空 ***/});

注意,如果將這個微信私有函數單獨拿出來調用,道理上是講的通,但是!第一次打開頁面直接調用它的話,無論如何是沒有任何反映的,必須要手動,點一 下右上角分享給好友按鈕,待彈出一次通訊錄之后,返回來在直接使用,就沒有任何問題,似乎內部初始化什么東西一樣。所以建議直接嵌入到上面那個 綁定方法中。

如下:

  1. function sendMessage(){
  2. WeixinJSBridge.on('menu:share:appmessage', function(argv){
  3. WeixinJSBridge.invoke('sendAppMessage',{
  4.  
  5. "appid":"", //appid 設置空就好了。
  6. "img_url": imgUrl, //分享時所帶的圖片路徑
  7. "img_width": "120", //圖片寬度
  8. "img_height": "120", //圖片高度
  9. "link":url, //分享附帶鏈接地址
  10. "desc":"我是一個介紹", //分享內容介紹
  11. "title":"標題,再簡單不過了。"
  12. }, function(res){/*** 回調函數,最好設置為空 ***/
  13.  
  14. });
  15.  
  16. });
  17. }

這樣,你在點擊發送給好友按鈕,就可以直接彈出通訊錄選擇 ‘單個’ 好友進行分享。

同理,分享到朋友圈也是調用 invoke 私有函數,只是按鈕綁定名稱不同而已。

  1. function sendMessage(){
  2.  
  3.  
  4. ......//此處省略發送給好友代碼
  5.  
  6.  
  7. WeixinJSBridge.on('menu:share:timeline', function(argv){
  8.  
  9. WeixinJSBridge.invoke('shareTimeline',{
  10.  
  11. "appid":"", //appid 設置空就好了。
  12. "img_url": imgUrl, //分享時所帶的圖片路徑
  13. "img_width": "120", //圖片寬度
  14. "img_height": "120", //圖片高度
  15. "link":url, //分享附帶鏈接地址
  16. "desc":"我是一個介紹", //分享內容介紹
  17. "title":"標題,再簡單不過了。"
  18. }, function(res){/*** 回調函數,最好設置為空 ***/});
  19.  
  20. });
  21.  
  22. });
  23.  
  24. }

注意,on綁定的是 “menu:share:timeline” 不是 "menu:share:appmessage"。invoke里面也是。

還一個微博分享,我沒試過,不知道有沒有用,想玩的試試,一切分享都是調用當前微信帳號分享。

  1. WeixinJSBridge.on('menu:share:weibo', function(argv){
  2. WeixinJSBridge.invoke('shareWeibo',{
  3. "content":dataForWeixin.title+' '+dataForWeixin.url,
  4. "url":dataForWeixin.url
  5. }, function(res){});
  6. });

如果微信瀏覽器內部尚未初始化,所有的接口都會是undefined。為了避免進去馬上就調用出錯,獲取微信初始化完成響應事件,初始化完成調用sendMessage進行綁定。

如下:

  1. if(document.addEventListener){
  2. document.addEventListener('WeixinJSBridgeReady', sendMessage, false); }else if(document.attachEvent){
  3. document.attachEvent('WeixinJSBridgeReady' , sendMessage); document.attachEvent('onWeixinJSBridgeReady' , sendMessage); }

下面還有幾個小功能: 

  1. WeixinJSBridge.call('hideToolbar'); //隱藏右下面工具欄
  2.  
  3. WeixinJSBridge.call('showToolbar'); //顯示右下面工具欄
  4.  
  5. WeixinJSBridge.call('hideOptionMenu'); //隱藏右上角三個點按鈕。
  6.  
  7. WeixinJSBridge.call('showOptionMenu'); //顯示右上角三個點按鈕。
  8.  

我是一個菜鳥,寫完了,寫的不好,請大家多多包含!


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM