• 微信WeixinJSBridge API使用实例


    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>
  • 相关阅读:
    Flutter开发环境搭建
    Android自定义View-圆形图片控件
    浅析对象的创建过程
    Java对象占用内存大小--Java对象的内存结构分析
    对AQS的简单理解及自定义锁的实现
    IntelliJ IDEA插件开发的简单流程
    IOC之运行时注入-实现Activity的布局注入+控件注入+事件绑定
    动态代理+注解+反射实现View的点击事件绑定
    Java中的注解和反射
    利用短信通知的方式在Tasker中实现收到Android手机短信自动转发到微信
  • 原文地址:https://www.cnblogs.com/westsoft/p/5925157.html
Copyright © 2020-2023  润新知