首页 > 语言 > JavaScript > 正文

微信WeixinJSBridge API使用实例

2024-05-06 16:20:47
字体:
来源:转载
供稿:网友

这篇文章主要介绍了微信WeixinJSBridge API使用实例,本文直接给出HTML代码,代码中包含了很多实用功能,如图片预览、分享到微博、隐藏右上角按钮、获取网络状态、发起公众号微信支付等内容,需要的朋友可以参考下

注意:请在微信中测试

  1. <!DOCTYPE html> 
  2. <html> 
  3. <head> 
  4. <title>微信WeixinJSBridge API</title>  
  5. <meta charset="utf-8" />  
  6. <script type="text/javascript"
  7. (function(){ 
  8. var a=document.getElementsByTagName("html")[0]; 
  9. window.Session={appDomain:a.getAttribute("data-app-domain")||"",staticDomain:a.getAttribute("data-static-domain")||""
  10. })(); 
  11.  
  12. window.registNS=function(fullNS,isIgnorSelf){ 
  13. var reg=/^[_$a-z]+[_$a-z0-9]*/i;var nsArray=fullNS.split("."); 
  14. var sEval=""
  15. var sNS=""
  16. var n=isIgnorSelf?nsArray.length-1:nsArray.length; 
  17. for(var i=0;i<n;i++){ 
  18. if(!reg.test(nsArray[i])){throw new Error("Invalid namespace:"+nsArray[i]+""); 
  19. return 
  20. if(i!=0){sNS+="."
  21. sNS+=nsArray[i]; 
  22. sEval+="if(typeof("+sNS+")=='undefined') "+sNS+"=new Object(); 
  23. else "+sNS+";" 
  24. if(sEval!=""){ 
  25. return eval(sEval) 
  26. return{} 
  27.  
  28. }; 
  29.  
  30. </script>  
  31. </head>  
  32. <body> 
  33. <section class="mod-page-body">  
  34. <div class="mod-page-main wordwrap clearfix">  
  35. <div class="mod-pageheader"></div>  
  36. <div class="mod-pagecontent">  
  37. <div class="mod-weixinjsapi">  
  38. <div class="x-desc"
  39. 微信客户端自带的Js Api:WeixinJSBridge 
  40. </div>  
  41. <div id="WeixinJsApi">  
  42. <input type="button" id="imagePreview" value="图片预览" />  
  43. <input type="button" id="profile" value="查看profile" />  
  44. <a href="weixin://profile/gh_412d74fbb474">企业微信小助手</a>  
  45. <input type="button" id="shareWeibo" value="分享微博" />  
  46. <input type="button" id="shareFB" value="分享facebook" />  
  47. <input type="button" id="addContact" value="添加联系人" />  
  48. <input type="button" id="scanQRCode" value="扫描二维码" />  
  49. <input type="button" id="jumpToBizProfile" value="跳转到指定公众账号页面" />  
  50. <input type="button" id="toggleMenuBtn" value="隐藏右上角按钮" />  
  51. <input type="button" id="toggleToolbar" value="隐藏底部导航栏" />  
  52. <input type="button" id="getNetType" value="获取网络状态" />  
  53. <input type="button" id="closeWindow" value="关闭" />  
  54. <input type="button" id="getBrandWCPayRequest" value="发起公众号微信支付" />  
  55. <input type="button" id="setPageState" value="设置页面状态" />  
  56. <input type="button" id="sendEmail" value="发邮件" />  
  57. <input type="button" id="openSpecificView" value="微信团队打开webView,跳到指定页面" />  
  58. <input type="button" id="getCanIAPPay" value="getCanIAPPay" />  
  59. <input type="button" id="getBrandIAPPayRequest" value="发起公众号IAP支付" />  
  60. <input type="button" id="openUrlByExtBrowser" value="用safari打开指定链接" />  
  61. <input type="button" id="openProductView" value="跳转微信商品页" />  
  62. <input type="button" id="openLocation" value="查看地理位置" />  
  63. <input type="button" id="timelineCheckIn" value="朋友圈签到" />  
  64. <input type="button" id="getBrandWCPayCreateCreditCardRequest" value="开通微信信用卡" />  
  65. <input type="button" id="geoLocation" value="获取地理位置" />  
  66. <input type="button" id="getInstallState" value="获取某app是否安装" />  
  67. <input type="button" id="editAddress" value="公众号编辑收货地址" />  
  68. <input type="button" id="getLatestAddress" value="公众号获取最近的收货地址" />  
  69. <input type="button" id="launch3rdApp" value="启动第三方APP" />  
  70. <input type="button" id="jumpWCMall" value="跳转微信商品购买界面" />  
  71. <input type="button" id="addEmoticon" value="添加表情" />  
  72. <input type="button" id="cancelAddEmoticon" value="取消下载某表情" />  
  73. <input type="button" id="hasEmoticon" value="查询是否存在某表情" />  
  74. </div>  
  75. </div>  
  76. </div>  
  77. </div>  
  78. </section>  
  79. <script> 
  80. function onBridgeReady() { 
  81. WeixinJSBridge.on('menu:share:appmessage'function(argv)  
  82. WeixinJSBridge.invoke('sendAppMessage',{ 
  83. "link":"http://m.exmail.qq.com/"
  84. "desc":"desc"
  85. "title":"title for WeiXinJsBridge" 
  86. }, function(res) { 
  87. WeixinJSBridge.log(res.err_msg); 
  88. }); 
  89. }); 
  90. WeixinJSBridge.on('menu:share:timeline'function(argv)  
  91. WeixinJSBridge.invoke("shareTimeline",{ 
  92. "link":"http://m.exmail.qq.com"
  93. "img_url":"http://rescdn.qqmail.com/bizmail/zh_CN/htmledition/images/bizmail/v3/logo1ca3fe.png"
  94. "img_width":"172"
  95. "img_height":"40"
  96. "desc":"i am description"
  97. "title":"just test from WeixinJsBridge" 
  98. }, 
  99. function(e){ 
  100. alert(e.err_msg); 
  101. }) 
  102. }); 
  103.  
  104. if (typeof WeixinJSBridge === "undefined"){ 
  105. if (document.addEventListener){ 
  106. document.addEventListener('WeixinJSBridgeReady', onBridgeReady, false); 
  107. }else
  108. onBridgeReady(); 
  109.  
  110. var menuHidden=!1,toolbarHidden=!1,netType={"network_type:wifi":"wifi网络","network_type:edge":"非wifi,包含3G/2G","network_type:fail":"网络断开连接","network_type:wwan":"2g或者3g"}; 
  111. document.addEventListener("WeixinJSBridgeReady",function(){ 
  112. document.getElementById("imagePreview").addEventListener( 
  113. "click",function(){ 
  114. WeixinJSBridge.invoke("imagePreview",{ 
  115. "urls":[ 
  116. "http://rescdn.qqmail.com/bizmail/zh_CN/htmledition/images/bizmail/v3/logo1ca3fe.png"
  117. "http://rescdn.qqmail.com/bizmail/zh_CN/htmledition/images/bizmail/v3/icons_features1ca3fe.png"
  118. "http://rescdn.qqmail.com/bizmail/zh_CN/htmledition/images/bizmail/v3/icons_workStyle1ca3fe.png" 
  119. ], 
  120. "current":"http://rescdn.qqmail.com/bizmail/zh_CN/htmledition/images/bizmail/v3/icons_features1ca3fe.png" 
  121. }) 
  122. },!1), 
  123. document.getElementById("profile").addEventListener( 
  124. "click",function(){ 
  125. alert("profile clicked"); 
  126. WeixinJSBridge.invoke("profile",{ 
  127. "username":"gh_412d74fbb474"
  128. "nickname":"企业微信小助手"  
  129. }) 
  130. },!1), 
  131. document.getElementById("shareWeibo").addEventListener( 
  132. "click",function(){ 
  133. WeixinJSBridge.invoke("shareWeibo",{ 
  134. "type":"link"
  135. "link":"http://m.exmail.qq.com" 
  136. }, 
  137. function(e){ 
  138. alert(e.err_msg); 
  139. }) 
  140. },!1), 
  141. document.getElementById("shareFB").addEventListener( 
  142. "click",function(){ 
  143. WeixinJSBridge.invoke("shareFB",{ 
  144. "link":"http://m.exmail.qq.com" 
  145. }) 
  146. },!1), 
  147. document.getElementById("scanQRCode").addEventListener( 
  148. "click",function(){ 
  149. WeixinJSBridge.invoke("scanQRCode",{ 
  150. }) 
  151. },!1), 
  152. document.getElementById("addEmoticon").addEventListener( 
  153. "click",function(){ 
  154. WeixinJSBridge.invoke("addEmoticon",{ 
  155. "url":"http://rescdn.qqmail.com/bizmail/zh_CN/htmledition/images/bizmail/v3/icons_features1ca3fe.png"
  156. "thumb_url":"http://rescdn.qqmail.com/bizmail/zh_CN/htmledition/images/bizmail/v3/logo1ca3fe.png" 
  157.  
  158. }, 
  159. function(e){ 
  160. alert(e.err_msg); 
  161. }) 
  162. },!1), 
  163. document.getElementById("cancelAddEmoticon").addEventListener( 
  164. "click",function(){ 
  165. WeixinJSBridge.invoke("cancelAddEmoticon",{ 
  166. "url":"http://rescdn.qqmail.com/bizmail/zh_CN/htmledition/images/bizmail/v3/icons_features1ca3fe.png" 
  167.  
  168. }, 
  169. function(e){ 
  170. alert(e.err_msg); 
  171. }) 
  172. },!1), 
  173. document.getElementById("hasEmoticon").addEventListener( 
  174. "click",function(){ 
  175. WeixinJSBridge.invoke("hasEmoticon",{ 
  176. "url":"http://rescdn.qqmail.com/bizmail/zh_CN/htmledition/images/bizmail/v3/icons_features1ca3fe.png" 
  177.  
  178. }, 
  179. function(e){ 
  180. alert(e.err_msg); 
  181. }) 
  182. },!1), 
  183. document.getElementById("addContact").addEventListener( 
  184. "click",function(){ 
  185. WeixinJSBridge.invoke("addContact",{ 
  186. "webtype":"1"
  187. "username":"gh_412d74fbb474" 
  188. }, 
  189. function(e){ 
  190. alert(e.err_msg); 
  191. }) 
  192. },!1), 
  193. document.getElementById("jumpToBizProfile").addEventListener( 
  194. "click",function(){ 
  195. WeixinJSBridge.invoke("jumpToBizProfile",{ 
  196. "tousername":"gh_2248a2ade13e" 
  197. }, 
  198. function(e){ 
  199. alert(e.err_msg); 
  200. }) 
  201. },!1), 
  202. document.getElementById("toggleMenuBtn").addEventListener( 
  203. "click",function(){ 
  204. menuHidden? 
  205. (WeixinJSBridge.call("showOptionMenu"),menuHidden=!1,this.value="隐藏右上角按钮"
  206. (WeixinJSBridge.call("hideOptionMenu"),menuHidden=!0,this.value="显示右上角按钮"
  207. },!1), 
  208. document.getElementById("toggleToolbar").addEventListener( 
  209. "click",function(){ 
  210. toolbarHidden? 
  211. (WeixinJSBridge.call("showToolbar"),toolbarHidden=!1,this.value="隐藏底部导航栏"
  212. (WeixinJSBridge.call("hideToolbar"),toolbarHidden=!0,this.value="显示底部导航栏"
  213. },!1), 
  214. document.getElementById("getNetType").addEventListener( 
  215. "click",function(){ 
  216. WeixinJSBridge.invoke("getNetworkType",{}, 
  217. function(e){ 
  218. alert(netType[e.err_msg]) 
  219. }) 
  220. },!1), 
  221. document.getElementById("closeWindow").addEventListener( 
  222. "click",function(){ 
  223. WeixinJSBridge.invoke("closeWindow",{},function(e){}) 
  224. },!1), 
  225. document.getElementById("getBrandWCPayRequest").addEventListener( 
  226. "click",function(){ 
  227. WeixinJSBridge.invoke("getBrandWCPayRequest",{ 
  228. "appId" : "wxf8b4f85f3a794e77"//公众号名称,由商户传入 
  229. "timeStamp" : "189026618"//时间戳 这里随意使用了一个值 
  230. "nonceStr" : "adssdasssd13d"//随机串 
  231. "package" : 
  232. "body=xxx&fee_type=1&input_charset=GBK¬ify_url=http&out_trade_no=16642817866003386000&partner=1900000109&return_url=http&spbill_create_ip=127.0.0.1&total_fee=1&sign=273B7EEEE642A8E41F27213D8517E0E4"//扩展字段,由商户传入 
  233. "signType" : "SHA1"//微信签名方式:sha1 
  234. "paySign" : "b737015b5b1eabe5db580945a07eac08c7bb55f8" //微信签名 
  235. }, 
  236. function(e){ 
  237. alert(e.err_msg) 
  238. }) 
  239. },!1), 
  240. document.getElementById("setPageState").addEventListener( 
  241. "click",function(){ 
  242. WeixinJSBridge.invoke("setPageState",{ 
  243. "state" : "1" 
  244. }) 
  245. },!1), 
  246.  
  247. document.getElementById("sendEmail").addEventListener( 
  248. "click",function(){ 
  249. WeixinJSBridge.invoke("sendEmail",{ 
  250. "title" : "title!"
  251. "content" : "i am an Email!"//时间戳 这里随意使用了一个值 
  252. }, 
  253. function(e){ 
  254. // alert(e.err_msg) 
  255. }) 
  256. },!1), 
  257. document.getElementById("openSpecificView").addEventListener( 
  258. "click",function(){ 
  259. WeixinJSBridge.invoke("openSpecificView",{ 
  260. "specificview" : "contacts" 
  261. }, 
  262. function(e){ 
  263. alert(e.err_msg) 
  264. }) 
  265. },!1), 
  266. document.getElementById("getCanIAPPay").addEventListener( 
  267. "click",function(){ 
  268. WeixinJSBridge.invoke("getCanIAPPay",{ }, 
  269. function(e){ 
  270. alert(e.err_msg) 
  271. }) 
  272. },!1), 
  273. document.getElementById("getBrandIAPPayRequest").addEventListener( 
  274. "click",function(){ 
  275. WeixinJSBridge.invoke("getBrandIAPPayRequest",{ 
  276. "appId" : "wxf8b4f85f3a794e77"//公众号名称,由商户传入 
  277. "timeStamp" : "189026618"//时间戳 这里随意使用了一个值 
  278. "nonceStr" : "adssdasssd13d"//随机串 
  279. "package" : "bankType=CITIC_CREDIT&bankName=%e4%b8%ad%e4%bf%a1%e9%93%b6%e8%a1%8c&sign=CF8922F49431FFE8A1834D0B32B25CE3"
  280. //扩展字段,由商户传入 
  281. "signType" : "SHA1"//微信签名方式:sha1 
  282. "paySign" : "1e6f13f78ca0ec43fbb80899087f77568af66987" //微信签名 
  283. }, 
  284. function(e){ 
  285. alert(e.err_msg) 
  286. }) 
  287. },!1), 
  288. document.getElementById("openLocation").addEventListener( 
  289. "click",function(){ 
  290. WeixinJSBridge.invoke("openProductView",{  
  291. "latitude" : 23.113, //纬度 
  292. "longitude" : 113.23, //经度 
  293. "name" : "TIT创意园"//POI名称 
  294. "address" : "广州市海珠区新港中路397号"//地址 
  295. "scale" : 14, //地图缩放级别 
  296. "infoUrl" : "http://weixin.qq.com/", //查看位置界面底部的超链接  
  297. }, 
  298. function(e){ 
  299. alert(e.err_msg) 
  300. }) 
  301. },!1), 
  302. document.getElementById("timelineCheckIn").addEventListener( 
  303. "click",function(){ 
  304. WeixinJSBridge.invoke("timelineCheckIn",{  
  305. "img_url""http://mmsns.qpic.cn/mmsns/RLllkTm3DUdV24xbZnKicx9jJWxXI0Bq84zzbtibGuRyk/0", // 分享到朋友圈的缩略图 
  306. "img_width""640", // 图片的长度 
  307. "img_height""640"// 图片高度 
  308. "link""http://news.qq.com/zt2012/cxkyym/index.htm", // 连接地址 
  309. "desc""这个是描述啊啊"// 描述 
  310. "title""朝鲜称中国渔船越界捕捞"// 分享标题 
  311. "latitude" : 23.113, //纬度 
  312. "longitude" : 113.23, //经度 
  313. "poiId" : "dianping_2331037"//商户id 
  314. "poiName" : "TIT创意园"//POI名称 
  315. "poiAddress" : "广州市海珠区新港中路397号"//地址 
  316. "poiScale" : 14, //地图缩放级别 
  317. "poiInfoUrl" : "http://weixin.qq.com/" //查看位置界面底部的超链接 
  318. }, 
  319. function(e){ 
  320. alert(e.err_msg) 
  321. }) 
  322. },!1), 
  323. document.getElementById("geoLocation").addEventListener( 
  324. "click",function(){ 
  325. WeixinJSBridge.invoke("geoLocation",{  
  326. }, 
  327. function(e){ 
  328. alert(e.err_msg) 
  329. }) 
  330. },!1), 
  331. document.getElementById("getBrandWCPayCreateCreditCardRequest").addEventListener( 
  332. "click",function(){ 
  333. WeixinJSBridge.invoke("getBrandWCPayCreateCreditCardRequest",{  
  334. "appId" : "wxf8b4f85f3a794e77"//公众号名称,由商户传入 
  335. "timeStamp" : "189026618"//时间戳 这里随意使用了一个值 
  336. "nonceStr" : "adssdasssd13d"//随机串 
  337. "package" : "bankType=CITIC_CREDIT&bankName=%e4%b8%ad%e4%bf%a1%e9%93%b6%e8%a1%8c&sign= CF8922F49431FFE8A1834D0B32B25CE3"
  338. //扩展字段,由商户传入 
  339. "signType" : "SHA1"//微信签名方式:sha1 
  340. "paySign" : "1e6f13f78ca0ec43fbb80899087f77568af66987" //微信签名 
  341. }, 
  342. function(e){ 
  343. alert(e.err_msg) 
  344. }) 
  345. },!1), 
  346. document.getElementById("getInstallState").addEventListener( 
  347. "click",function(){ 
  348. WeixinJSBridge.invoke("getInstallState",{  
  349. "packageUrl":"teamcircle://" 
  350. }, 
  351. function(e){ 
  352. alert(e.err_msg) 
  353. }) 
  354. },!1), 
  355. document.getElementById("openProductView").addEventListener( 
  356. "click",function(){ 
  357. WeixinJSBridge.invoke("openProductView",{  
  358. "productInfo":"json" 
  359. }, 
  360. function(e){ 
  361. alert(e.err_msg) 
  362. }) 
  363. },!1), 
  364. document.getElementById("getLatestAddress").addEventListener( 
  365. "click",function(){ 
  366. WeixinJSBridge.invoke("getLatestAddress",{  
  367. "appId" : "wxf8b4f85f3a794e77"//公众号名称,由商户传入 
  368. "timeStamp" : "189026618"//时间戳 这里随意使用了一个值 
  369. "nonceStr" : "adssdasssd13d"//随机串 
  370. "signType" : "SHA1"//微信签名方式:sha1 
  371. "addrSign" : "b737015b5b1eabe5db580945a07eac08c7bb55f8"//微信签名 
  372. "scope" : "snsapi" 
  373. }, 
  374. function(e){ 
  375. alert(e.err_msg) 
  376. }) 
  377. },!1), 
  378. document.getElementById("editAddress").addEventListener( 
  379. "click",function(){ 
  380. WeixinJSBridge.invoke("editAddress",{  
  381. "appId" : "wxf8b4f85f3a794e77"//公众号名称,由商户传入 
  382. "timeStamp" : "189026618"//时间戳 这里随意使用了一个值 
  383. "nonceStr" : "adssdasssd13d"//随机串 
  384. "signType" : "SHA1"//微信签名方式:sha1 
  385. "addrSign" : "b737015b5b1eabe5db580945a07eac08c7bb55f8"//微信签名 
  386. "scope" : "snsapi" 
  387. }, 
  388. function(e){ 
  389. alert(e.err_msg) 
  390. }) 
  391. },!1), 
  392. document.getElementById("launch3rdApp").addEventListener( 
  393. "click",function(){ 
  394. WeixinJSBridge.invoke("launch3rdApp",{  
  395. "appId" : "wx5823bf96d3bd56c7"//公众号名称,由商户传入 
  396. }, 
  397. function(e){ 
  398. alert(e.err_msg) 
  399. }) 
  400. },!1), 
  401. document.getElementById("jumpWCMall").addEventListener( 
  402. "click",function(){ 
  403. WeixinJSBridge.invoke("jumpWCMall",{  
  404. "appId" : "wx5823bf96d3bd56c7"//公众号名称,由商户传入 
  405. "funcId":"1000" 
  406. }, 
  407. function(e){ 
  408. alert(e.err_msg) 
  409. }) 
  410. },!1), 
  411. document.getElementById("openUrlByExtBrowser").addEventListener( 
  412. "click",function(){ 
  413. WeixinJSBridge.invoke("openUrlByExtBrowser",{ 
  414. "url" : "http://m.exmail.qq.com" 
  415. }, 
  416. function(e){ 
  417. alert(e.err_msg) 
  418. }) 
  419. },!1) 
  420. ); 
  421. </script>  
  422. </body> 
  423. </html> 
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

图片精选