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