Java微信公眾平台開發(十五)--微信JSSDK的使用


轉自:http://www.cuiyongzhi.com/post/63.html

在前面的文章中有介紹到我們在微信web開發過程中常常用到的 【微信JSSDK中Config配置】 ,但是我們在真正的使用中我們不僅僅只是為了配置Config而已,而是要在我們的項目中真正去使用微信JS-SDK給我們帶來便捷,那么這里我們就簡述如何在微信web開發中使用必要的方法!微信的JS-SDk中為我們提供的方法很多,這里我有一個簡單截圖如下:

1.png

在上圖的提供的所有口中我們可以按照接口實現的難易程度分成兩個部分:

  • 較易實現:基礎接口、分享接口、設備信息接口、地理位置接口、界面操作接口、微信掃一掃接口;

  • 較難實現:圖像接口、音頻接口、智能接口、微信小店接口、微信卡券接口、微信支付接口;(注:這里說較難是因為需要后端和本地文件配合接口,這些接口后面會一篇篇文章具體詳解)

在這里我們將講述所有較易實現的接口的具體實現方法,在文章 http://www.cuiyongzhi.com/index.php/post/57.html  中講述過了如何配置和引入需要的js,通過這些配置之后我們就可以開始使用js的方法了!

①基礎接口-判斷當前瀏覽器是否支持某些js接口

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
/*
  * 注意:
  *  所有的JS接口只能在公眾號綁定的域名下調用,公眾號開發者需要先登錄微信公眾平台進入“公眾號設置”的“功能設置”里填寫“JS接口安全域名”。
  */
wx.ready( function  () {
   //1. 判斷當前版本是否支持指定 JS 接口,支持批量判斷,只需要將需要判斷的接口放入到jsApiList中即可
  checkJsApifunction () {
     wx.checkJsApi({
       jsApiList: [
         'getNetworkType' ,
         'previewImage'
       ],
       success:  function  (res) {
         alert(JSON.stringify(res));
       }
     });
   };

②分享接口,這里包含:分享給朋友、分享到朋友圈、分享到qq、分享到微博、分享到qq空間(但是這里要提醒要注意不要有誘導分享等違規行為,對於誘導分享行為將永久回收公眾號接口權限)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
  // 2. 分享接口
   // 2.1 監聽“分享給朋友”,按鈕點擊、自定義分享內容及分享結果接口
   onMenuShareAppMessagefunction () {
     wx.onMenuShareAppMessage({
       title:  '菜鳥程序員成長之路!' ,
       desc:  '關注java平台開發,前后端框架技術,分享前后端開發資源,服務端教程技術,菜鳥程序員!' ,
       link:  'http://www.cuiyongzhi.com/' ,
       trigger:  function  (res) {
         // 不要嘗試在trigger中使用ajax異步請求修改本次分享的內容,因為客戶端分享操作是一個同步操作,這時候使用ajax的回包會還沒有返回
         alert( '用戶點擊發送給朋友' );
       },
       success:  function  (res) {
         alert( '已分享' );
       },
       cancel:  function  (res) {
         alert( '已取消' );
       },
       fail:  function  (res) {
         alert(JSON.stringify(res));
       }
     });
     alert( '已注冊獲取“發送給朋友”狀態事件' );
   };
 
   // 2.2 監聽“分享到朋友圈”按鈕點擊、自定義分享內容及分享結果接口
   onMenuShareTimelinefunction () {
     wx.onMenuShareTimeline({
       title:  '菜鳥程序員成長之路!' ,
       link:  'http://www.cuiyongzhi.com/' ,
       trigger:  function  (res) {
         // 不要嘗試在trigger中使用ajax異步請求修改本次分享的內容,因為客戶端分享操作是一個同步操作,這時候使用ajax的回包會還沒有返回
         alert( '用戶點擊分享到朋友圈' );
       },
       success:  function  (res) {
         alert( '已分享' );
       },
       cancel:  function  (res) {
         alert( '已取消' );
       },
       fail:  function  (res) {
         alert(JSON.stringify(res));
       }
     });
     alert( '已注冊獲取“分享到朋友圈”狀態事件' );
   };
 
   // 2.3 監聽“分享到QQ”按鈕點擊、自定義分享內容及分享結果接口
   onMenuShareQQfunction () {
     wx.onMenuShareQQ({
       title:  '菜鳥程序員成長之路!' ,
       desc:  '關注java平台開發,前后端框架技術,分享前后端開發資源,服務端教程技術,菜鳥程序員!' ,
       link:  'http://www.cuiyongzhi.com/' ,
       trigger:  function  (res) {
         alert( '用戶點擊分享到QQ' );
       },
       complete:  function  (res) {
         alert(JSON.stringify(res));
       },
       success:  function  (res) {
         alert( '已分享' );
       },
       cancel:  function  (res) {
         alert( '已取消' );
       },
       fail:  function  (res) {
         alert(JSON.stringify(res));
       }
     });
     alert( '已注冊獲取“分享到 QQ”狀態事件' );
   };
   
   // 2.4 監聽“分享到微博”按鈕點擊、自定義分享內容及分享結果接口
   onMenuShareWeibofunction () {
     wx.onMenuShareWeibo({
      title:  '菜鳥程序員成長之路!' ,
       desc:  '關注java平台開發,前后端框架技術,分享前后端開發資源,服務端教程技術,菜鳥程序員!' ,
       link:  'http://www.cuiyongzhi.com/' ,
       trigger:  function  (res) {
         alert( '用戶點擊分享到微博' );
       },
       complete:  function  (res) {
         alert(JSON.stringify(res));
       },
       success:  function  (res) {
         alert( '已分享' );
       },
       cancel:  function  (res) {
         alert( '已取消' );
       },
       fail:  function  (res) {
         alert(JSON.stringify(res));
       }
     });
     alert( '已注冊獲取“分享到微博”狀態事件' );
   };
 
   // 2.5 監聽“分享到QZone”按鈕點擊、自定義分享內容及分享接口
   onMenuShareQZonefunction () {
     wx.onMenuShareQZone({
       title:  '菜鳥程序員成長之路!' ,
       desc:  '關注java平台開發,前后端框架技術,分享前后端開發資源,服務端教程技術,菜鳥程序員!' ,
       link:  'http://www.cuiyongzhi.com/' ,
       trigger:  function  (res) {
         alert( '用戶點擊分享到QZone' );
       },
       complete:  function  (res) {
         alert(JSON.stringify(res));
       },
       success:  function  (res) {
         alert( '已分享' );
       },
       cancel:  function  (res) {
         alert( '已取消' );
       },
       fail:  function  (res) {
         alert(JSON.stringify(res));
       }
     });
     alert( '已注冊獲取“分享到QZone”狀態事件' );
   };

③設備信息接口--這里是獲取設備網絡狀態,以防在頁面中存在視頻或者大流量文件播放的時候對用戶給出友好提示!

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
   // 3 設備信息接口
   // 3.1 獲取當前網絡狀態
   getNetworkTypefunction () {
     wx.getNetworkType({
       success:  function  (res) {
         alert(res.networkType);
         var  networkType = res.networkType;  // 返回網絡類型2g,3g,4g,wifi
         if (networkType== '3g' ){
             alert( "您好,您的網絡狀態是3g網絡,這里將播放視頻文件會產生大流程!" );
         }
       },
       fail:  function  (res) {
         alert(JSON.stringify(res));
       }
     });
   };

④地理位置接口,這里包含查看經緯度對應的地圖位置和獲取當前位置的經緯度,可用做地圖位置展示的第一步!

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
   // 4 地理位置接口
   // 4.1 查看地理位置
   openLocationfunction () {
     wx.openLocation({
       latitude: 23.099994,
       longitude: 113.324520,
       name:  'TIT 創意園' ,
       address:  '廣州市海珠區新港中路 397 號' ,
       scale: 14,
       infoUrl:  'http://weixin.qq.com'
     });
   };
 
   // 4.2 獲取當前地理位置
   getLocationfunction () {
     wx.getLocation({
       success:  function  (res) {
         alert(JSON.stringify(res));
       },
       cancel:  function  (res) {
         alert( '用戶拒絕授權獲取地理位置' );
       }
     });
   };

⑤界面操作接口,這里說的界面操作其實就是在微信瀏覽器中操作和改名的那右上角的【三個點】,對這里隱藏的菜單進行操作和關閉微信瀏覽器!

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
   // 5 界面操作接口
   // 5.1 隱藏右上角菜單
   hideOptionMenufunction () {
     wx.hideOptionMenu();
   };
 
   // 5.2 顯示右上角菜單
   showOptionMenufunction () {
     wx.showOptionMenu();
   };
 
   // 5.3 批量隱藏菜單項
   hideMenuItemsfunction () {
     wx.hideMenuItems({
       menuList: [
         'menuItem:readMode' // 閱讀模式
         'menuItem:share:timeline' // 分享到朋友圈
         'menuItem:copyUrl'  // 復制鏈接
       ],
       success:  function  (res) {
         alert( '已隱藏“閱讀模式”,“分享到朋友圈”,“復制鏈接”等按鈕' );
       },
       fail:  function  (res) {
         alert(JSON.stringify(res));
       }
     });
   };
 
   // 5.4 批量顯示菜單項
   showMenuItemsfunction () {
     wx.showMenuItems({
       menuList: [
         'menuItem:readMode' // 閱讀模式
         'menuItem:share:timeline' // 分享到朋友圈
         'menuItem:copyUrl'  // 復制鏈接
       ],
       success:  function  (res) {
         alert( '已顯示“閱讀模式”,“分享到朋友圈”,“復制鏈接”等按鈕' );
       },
       fail:  function  (res) {
         alert(JSON.stringify(res));
       }
     });
   };
 
   // 5.5 隱藏所有非基本菜單項
   hideAllNonBaseMenuItemfunction () {
     wx.hideAllNonBaseMenuItem({
       success:  function  () {
         alert( '已隱藏所有非基本菜單項' );
       }
     });
   };
 
   // 5.6 顯示所有被隱藏的非基本菜單項
   showAllNonBaseMenuItemfunction () {
     wx.showAllNonBaseMenuItem({
       success:  function  () {
         alert( '已顯示所有非基本菜單項' );
       }
     });
   };
 
   // 5.7 關閉當前窗口
   closeWindowfunction () {
     wx.closeWindow();
   };

⑥微信掃一掃接口,這個接口可以在頁面調用微信的掃一掃功能,其中參數needResult可以設置掃描之后的處理方式;

1
2
3
4
5
6
7
8
   // 6 微信原生接口
  wx.scanQRCode({
     needResult: 0,  // 默認為0,掃描結果由微信處理,1則直接返回掃描結果,
     scanType: [ "qrCode" , "barCode" ],  // 可以指定掃二維碼還是一維碼,默認二者都有
     success:  function  (res) {
     var  result = res.resultStr;  // 當needResult 為 1 時,掃碼返回的結果
}
});


免責聲明!

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



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