微信WeixinJSBridge API使用实例


Posted in Javascript onMay 25, 2015

注意:请在微信中测试

<!DOCTYPE html>
<html>
 <head>
 <title>微信WeixinJSBridge API</title> 
 <meta charset="utf-8" /> 
 <script type="text/javascript">
(function(){
var a=document.getElementsByTagName("html")[0];
window.Session={appDomain:a.getAttribute("data-app-domain")||"",staticDomain:a.getAttribute("data-static-domain")||""}
})();
 
window.registNS=function(fullNS,isIgnorSelf){
var reg=/^[_$a-z]+[_$a-z0-9]*/i;var nsArray=fullNS.split(".");
var sEval="";
var sNS="";
var n=isIgnorSelf?nsArray.length-1:nsArray.length;
for(var i=0;i<n;i++){
  if(!reg.test(nsArray[i])){throw new Error("Invalid namespace:"+nsArray[i]+"");
  return
  }
  if(i!=0){sNS+="."}
  sNS+=nsArray[i];
  sEval+="if(typeof("+sNS+")=='undefined') "+sNS+"=new Object();
  else "+sNS+";"
}
if(sEval!=""){
return eval(sEval)
}
return{}
 
};
 
</script> 
 </head> 
 <body>
 <section class="mod-page-body"> 
  <div class="mod-page-main wordwrap clearfix"> 
  <div class="mod-pageheader"></div> 
  <div class="mod-pagecontent"> 
   <div class="mod-weixinjsapi"> 
   <div class="x-desc">
    微信客户端自带的Js Api:WeixinJSBridge
   </div> 
   <div id="WeixinJsApi"> 
    <input type="button" id="imagePreview" value="图片预览" /> 
    <input type="button" id="profile" value="查看profile" /> 
    <a href="weixin://profile/gh_412d74fbb474">企业微信小助手</a> 
    <input type="button" id="shareWeibo" value="分享微博" /> 
    <input type="button" id="shareFB" value="分享facebook" /> 
    <input type="button" id="addContact" value="添加联系人" /> 
    <input type="button" id="scanQRCode" value="扫描二维码" /> 
    <input type="button" id="jumpToBizProfile" value="跳转到指定公众账号页面" /> 
    <input type="button" id="toggleMenuBtn" value="隐藏右上角按钮" /> 
    <input type="button" id="toggleToolbar" value="隐藏底部导航栏" /> 
    <input type="button" id="getNetType" value="获取网络状态" /> 
    <input type="button" id="closeWindow" value="关闭" /> 
    <input type="button" id="getBrandWCPayRequest" value="发起公众号微信支付" /> 
    <input type="button" id="setPageState" value="设置页面状态" /> 
    <input type="button" id="sendEmail" value="发邮件" /> 
    <input type="button" id="openSpecificView" value="微信团队打开webView,跳到指定页面" /> 
    <input type="button" id="getCanIAPPay" value="getCanIAPPay" /> 
    <input type="button" id="getBrandIAPPayRequest" value="发起公众号IAP支付" /> 
    <input type="button" id="openUrlByExtBrowser" value="用safari打开指定链接" /> 
    <input type="button" id="openProductView" value="跳转微信商品页" /> 
    <input type="button" id="openLocation" value="查看地理位置" /> 
    <input type="button" id="timelineCheckIn" value="朋友圈签到" /> 
    <input type="button" id="getBrandWCPayCreateCreditCardRequest" value="开通微信信用卡" /> 
    <input type="button" id="geoLocation" value="获取地理位置" /> 
    <input type="button" id="getInstallState" value="获取某app是否安装" /> 
    <input type="button" id="editAddress" value="公众号编辑收货地址" /> 
    <input type="button" id="getLatestAddress" value="公众号获取最近的收货地址" /> 
    <input type="button" id="launch3rdApp" value="启动第三方APP" /> 
    <input type="button" id="jumpWCMall" value="跳转微信商品购买界面" /> 
    <input type="button" id="addEmoticon" value="添加表情" /> 
    <input type="button" id="cancelAddEmoticon" value="取消下载某表情" /> 
    <input type="button" id="hasEmoticon" value="查询是否存在某表情" /> 
   </div> 
   </div> 
  </div> 
  </div> 
 </section> 
 <script>
function onBridgeReady() {
  WeixinJSBridge.on('menu:share:appmessage', function(argv) 
  {
    WeixinJSBridge.invoke('sendAppMessage',{
          "link":"http://m.exmail.qq.com/",
          "desc":"desc",
          "title":"title for WeiXinJsBridge"
    }, function(res) {
      WeixinJSBridge.log(res.err_msg);
    });
  });
  WeixinJSBridge.on('menu:share:timeline', function(argv) 
  {
  WeixinJSBridge.invoke("shareTimeline",{
    "link":"http://m.exmail.qq.com",
    "img_url":"http://rescdn.qqmail.com/bizmail/zh_CN/htmledition/images/bizmail/v3/logo1ca3fe.png",
    "img_width":"172",
    "img_height":"40",
    "desc":"i am description",
    "title":"just test from WeixinJsBridge"
    },
    function(e){
    alert(e.err_msg);
    })
  });
}
 
if (typeof WeixinJSBridge === "undefined"){
  if (document.addEventListener){
    document.addEventListener('WeixinJSBridgeReady', onBridgeReady, false);
  }
}else{
  onBridgeReady();
}
 
  var menuHidden=!1,toolbarHidden=!1,netType={"network_type:wifi":"wifi网络","network_type:edge":"非wifi,包含3G/2G","network_type:fail":"网络断开连接","network_type:wwan":"2g或者3g"};
  document.addEventListener("WeixinJSBridgeReady",function(){
      document.getElementById("imagePreview").addEventListener(
      "click",function(){
                WeixinJSBridge.invoke("imagePreview",{
        "urls":[
        "http://rescdn.qqmail.com/bizmail/zh_CN/htmledition/images/bizmail/v3/logo1ca3fe.png",
        "http://rescdn.qqmail.com/bizmail/zh_CN/htmledition/images/bizmail/v3/icons_features1ca3fe.png",
        "http://rescdn.qqmail.com/bizmail/zh_CN/htmledition/images/bizmail/v3/icons_workStyle1ca3fe.png"
        ],
        "current":"http://rescdn.qqmail.com/bizmail/zh_CN/htmledition/images/bizmail/v3/icons_features1ca3fe.png"
        })
            },!1),
    document.getElementById("profile").addEventListener(
      "click",function(){
        alert("profile clicked");
        WeixinJSBridge.invoke("profile",{
          "username":"gh_412d74fbb474",
          "nickname":"企业微信小助手"  
        })
      },!1),
    document.getElementById("shareWeibo").addEventListener(
      "click",function(){
        WeixinJSBridge.invoke("shareWeibo",{
          "type":"link",
          "link":"http://m.exmail.qq.com"
        },
        function(e){
          alert(e.err_msg);
        })
      },!1),
    document.getElementById("shareFB").addEventListener(
      "click",function(){
        WeixinJSBridge.invoke("shareFB",{
          "link":"http://m.exmail.qq.com"
        })
      },!1),
    document.getElementById("scanQRCode").addEventListener(
      "click",function(){
        WeixinJSBridge.invoke("scanQRCode",{
        })
      },!1),
    document.getElementById("addEmoticon").addEventListener(
      "click",function(){
        WeixinJSBridge.invoke("addEmoticon",{
          "url":"http://rescdn.qqmail.com/bizmail/zh_CN/htmledition/images/bizmail/v3/icons_features1ca3fe.png",
          "thumb_url":"http://rescdn.qqmail.com/bizmail/zh_CN/htmledition/images/bizmail/v3/logo1ca3fe.png"
 
        },
        function(e){
                    alert(e.err_msg);
                })
      },!1),
    document.getElementById("cancelAddEmoticon").addEventListener(
      "click",function(){
        WeixinJSBridge.invoke("cancelAddEmoticon",{
          "url":"http://rescdn.qqmail.com/bizmail/zh_CN/htmledition/images/bizmail/v3/icons_features1ca3fe.png"
 
        },
        function(e){
                    alert(e.err_msg);
                })
      },!1),
    document.getElementById("hasEmoticon").addEventListener(
      "click",function(){
        WeixinJSBridge.invoke("hasEmoticon",{
          "url":"http://rescdn.qqmail.com/bizmail/zh_CN/htmledition/images/bizmail/v3/icons_features1ca3fe.png"
 
        },
        function(e){
                    alert(e.err_msg);
                })
      },!1),
    document.getElementById("addContact").addEventListener(
      "click",function(){
        WeixinJSBridge.invoke("addContact",{
          "webtype":"1",
          "username":"gh_412d74fbb474"
        },
        function(e){
          alert(e.err_msg);
        })
      },!1),
    document.getElementById("jumpToBizProfile").addEventListener(
      "click",function(){
        WeixinJSBridge.invoke("jumpToBizProfile",{
          "tousername":"gh_2248a2ade13e"
        },
        function(e){
          alert(e.err_msg);
        })
      },!1),
    document.getElementById("toggleMenuBtn").addEventListener(
      "click",function(){
        menuHidden?
        (WeixinJSBridge.call("showOptionMenu"),menuHidden=!1,this.value="隐藏右上角按钮")
        :
        (WeixinJSBridge.call("hideOptionMenu"),menuHidden=!0,this.value="显示右上角按钮")
      },!1),
    document.getElementById("toggleToolbar").addEventListener(
      "click",function(){
        toolbarHidden?
        (WeixinJSBridge.call("showToolbar"),toolbarHidden=!1,this.value="隐藏底部导航栏")
        :
        (WeixinJSBridge.call("hideToolbar"),toolbarHidden=!0,this.value="显示底部导航栏")
      },!1),
    document.getElementById("getNetType").addEventListener(
      "click",function(){
        WeixinJSBridge.invoke("getNetworkType",{},
          function(e){
            alert(netType[e.err_msg])
          })
      },!1),
     document.getElementById("closeWindow").addEventListener(
            "click",function(){
                WeixinJSBridge.invoke("closeWindow",{},function(e){})
            },!1),
    document.getElementById("getBrandWCPayRequest").addEventListener(
      "click",function(){
      WeixinJSBridge.invoke("getBrandWCPayRequest",{
        "appId" : "wxf8b4f85f3a794e77", //公众号名称,由商户传入
        "timeStamp" : "189026618", //时间戳 这里随意使用了一个值
        "nonceStr" : "adssdasssd13d", //随机串
        "package" :
        "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", //扩展字段,由商户传入
        "signType" : "SHA1", //微信签名方式:sha1
        "paySign" : "b737015b5b1eabe5db580945a07eac08c7bb55f8" //微信签名
        },
        function(e){
          alert(e.err_msg)
        })
      },!1),
    document.getElementById("setPageState").addEventListener(
      "click",function(){
      WeixinJSBridge.invoke("setPageState",{
        "state" : "1"
        })
      },!1),
 
    document.getElementById("sendEmail").addEventListener(
      "click",function(){
      WeixinJSBridge.invoke("sendEmail",{
        "title" : "title!",
        "content" : "i am an Email!", //时间戳 这里随意使用了一个值
        },
        function(e){
    //     alert(e.err_msg)
        })
      },!1),
    document.getElementById("openSpecificView").addEventListener(
      "click",function(){
      WeixinJSBridge.invoke("openSpecificView",{
        "specificview" : "contacts"
        },
        function(e){
          alert(e.err_msg)
        })
      },!1),
    document.getElementById("getCanIAPPay").addEventListener(
      "click",function(){
      WeixinJSBridge.invoke("getCanIAPPay",{ },
        function(e){
          alert(e.err_msg)
        })
      },!1),
    document.getElementById("getBrandIAPPayRequest").addEventListener(
      "click",function(){
      WeixinJSBridge.invoke("getBrandIAPPayRequest",{
        "appId" : "wxf8b4f85f3a794e77", //公众号名称,由商户传入
        "timeStamp" : "189026618", //时间戳 这里随意使用了一个值
        "nonceStr" : "adssdasssd13d", //随机串
        "package" : "bankType=CITIC_CREDIT&bankName=%e4%b8%ad%e4%bf%a1%e9%93%b6%e8%a1%8c&sign=CF8922F49431FFE8A1834D0B32B25CE3",
        //扩展字段,由商户传入
        "signType" : "SHA1", //微信签名方式:sha1
        "paySign" : "1e6f13f78ca0ec43fbb80899087f77568af66987" //微信签名
        },
        function(e){
          alert(e.err_msg)
        })
      },!1),
    document.getElementById("openLocation").addEventListener(
      "click",function(){
      WeixinJSBridge.invoke("openProductView",{  
        "latitude" : 23.113, //纬度
        "longitude" : 113.23, //经度
        "name" : "TIT创意园", //POI名称
        "address" : "广州市海珠区新港中路397号", //地址
        "scale" : 14, //地图缩放级别
        "infoUrl" : "http://weixin.qq.com/", //查看位置界面底部的超链接        
        },
        function(e){
          alert(e.err_msg)
        })
      },!1),
    document.getElementById("timelineCheckIn").addEventListener(
      "click",function(){
      WeixinJSBridge.invoke("timelineCheckIn",{  
        "img_url": "http://mmsns.qpic.cn/mmsns/RLllkTm3DUdV24xbZnKicx9jJWxXI0Bq84zzbtibGuRyk/0", // 分享到朋友圈的缩略图
        "img_width": "640", // 图片的长度
        "img_height": "640", // 图片高度
        "link": "http://news.qq.com/zt2012/cxkyym/index.htm", // 连接地址
        "desc": "这个是描述啊啊", // 描述
        "title": "朝鲜称中国渔船越界捕捞", // 分享标题
        "latitude" : 23.113, //纬度
        "longitude" : 113.23, //经度
        "poiId" : "dianping_2331037", //商户id
        "poiName" : "TIT创意园", //POI名称
        "poiAddress" : "广州市海珠区新港中路397号", //地址
        "poiScale" : 14, //地图缩放级别
        "poiInfoUrl" : "http://weixin.qq.com/" //查看位置界面底部的超链接
        },
        function(e){
          alert(e.err_msg)
        })
      },!1),
    document.getElementById("geoLocation").addEventListener(
      "click",function(){
      WeixinJSBridge.invoke("geoLocation",{  
        },
        function(e){
          alert(e.err_msg)
        })
      },!1),
    document.getElementById("getBrandWCPayCreateCreditCardRequest").addEventListener(
      "click",function(){
      WeixinJSBridge.invoke("getBrandWCPayCreateCreditCardRequest",{ 
        "appId" : "wxf8b4f85f3a794e77", //公众号名称,由商户传入
        "timeStamp" : "189026618", //时间戳 这里随意使用了一个值
        "nonceStr" : "adssdasssd13d", //随机串
        "package" : "bankType=CITIC_CREDIT&bankName=%e4%b8%ad%e4%bf%a1%e9%93%b6%e8%a1%8c&sign= CF8922F49431FFE8A1834D0B32B25CE3",
        //扩展字段,由商户传入
        "signType" : "SHA1", //微信签名方式:sha1
        "paySign" : "1e6f13f78ca0ec43fbb80899087f77568af66987" //微信签名
        },
        function(e){
          alert(e.err_msg)
        })
      },!1),
    document.getElementById("getInstallState").addEventListener(
      "click",function(){
      WeixinJSBridge.invoke("getInstallState",{  
          "packageUrl":"teamcircle://"
        },
        function(e){
          alert(e.err_msg)
        })
      },!1),
    document.getElementById("openProductView").addEventListener(
      "click",function(){
      WeixinJSBridge.invoke("openProductView",{  
          "productInfo":"json"
        },
        function(e){
          alert(e.err_msg)
        })
      },!1),
    document.getElementById("getLatestAddress").addEventListener(
        "click",function(){
        WeixinJSBridge.invoke("getLatestAddress",{ 
          "appId" : "wxf8b4f85f3a794e77", //公众号名称,由商户传入
          "timeStamp" : "189026618", //时间戳 这里随意使用了一个值
          "nonceStr" : "adssdasssd13d", //随机串
          "signType" : "SHA1", //微信签名方式:sha1
          "addrSign" : "b737015b5b1eabe5db580945a07eac08c7bb55f8", //微信签名
          "scope"  : "snsapi"
        },
        function(e){
          alert(e.err_msg)
        })
      },!1),
    document.getElementById("editAddress").addEventListener(
        "click",function(){
        WeixinJSBridge.invoke("editAddress",{  
          "appId" : "wxf8b4f85f3a794e77", //公众号名称,由商户传入
          "timeStamp" : "189026618", //时间戳 这里随意使用了一个值
          "nonceStr" : "adssdasssd13d", //随机串
          "signType" : "SHA1", //微信签名方式:sha1
          "addrSign" : "b737015b5b1eabe5db580945a07eac08c7bb55f8", //微信签名
          "scope"  : "snsapi"
        },
        function(e){
          alert(e.err_msg)
        })
      },!1),
    document.getElementById("launch3rdApp").addEventListener(
        "click",function(){
        WeixinJSBridge.invoke("launch3rdApp",{ 
          "appId" : "wx5823bf96d3bd56c7", //公众号名称,由商户传入
        },
        function(e){
          alert(e.err_msg)
        })
      },!1),
    document.getElementById("jumpWCMall").addEventListener(
        "click",function(){
        WeixinJSBridge.invoke("jumpWCMall",{  
          "appId" : "wx5823bf96d3bd56c7", //公众号名称,由商户传入
          "funcId":"1000"
        },
        function(e){
          alert(e.err_msg)
        })
      },!1),
    document.getElementById("openUrlByExtBrowser").addEventListener(
      "click",function(){
      WeixinJSBridge.invoke("openUrlByExtBrowser",{
        "url" : "http://m.exmail.qq.com"
        },
        function(e){
          alert(e.err_msg)
        })
      },!1)
    }
  );
</script> 
 </body>
</html>
Javascript 相关文章推荐
IE DOM实现存在的部分问题及解决方法
Jul 25 Javascript
javascript中onmouse事件在div中失效问题的解决方法
Jan 09 Javascript
调试Javascript代码(浏览器F12及VS中debugger关键字)
Jan 25 Javascript
JavaScript中为什么null==0为false而null大于=0为true(个人研究)
Sep 16 Javascript
jQuery之ajax删除详解
Feb 27 Javascript
AngularJS 实现按需异步加载实例代码
Oct 18 Javascript
js数字舍入误差以及解决方法(必看篇)
Feb 28 Javascript
Bootstrap Table 在指定列中添加下拉框控件并获取所选值
Jul 31 Javascript
JS监控关闭浏览器操作的实例详解
Sep 12 Javascript
JavaScript类的继承操作实例总结
Dec 20 Javascript
jQuery实现模拟搜索引擎的智能提示功能简单示例
Jan 27 jQuery
gulp构建小程序的方法步骤
May 31 Javascript
jquery.validate使用时遇到的问题
May 25 #Javascript
微信内置浏览器私有接口WeixinJSBridge介绍
May 25 #Javascript
微信浏览器内置JavaScript对象WeixinJSBridge使用实例
May 25 #Javascript
JS中的THIS和WINDOW.EVENT.SRCELEMENT详解
May 25 #Javascript
jQuery实现表格行上移下移和置顶的方法
May 22 #Javascript
jquery控制表单输入框显示默认值的方法
May 22 #Javascript
jQuery实现自动滚动到页面顶端的方法
May 22 #Javascript
You might like
ftp类(myftp.php)
2006/10/09 PHP
PHP中的extract的作用分析
2008/04/09 PHP
让PHP开发者事半功倍的十大技巧小结
2010/04/20 PHP
php中文验证码实现示例分享
2014/01/12 PHP
php通过array_unshift函数添加多个变量到数组前端的方法
2015/03/18 PHP
php日志函数error_log用法实例分析
2019/09/23 PHP
laravel 如何实现引入自己的函数或类库
2019/10/15 PHP
使Ext的Template可以解析二层的json数据的方法
2007/12/22 Javascript
仿迅雷焦点广告效果(JQuery版)
2008/11/19 Javascript
Javascript验证上传图片大小[前台处理]
2014/07/18 Javascript
浅谈JavaScript实现面向对象中的类
2014/12/09 Javascript
基于Javascript实现倒计时功能
2016/02/22 Javascript
JavaScript入门教程之引用类型
2016/05/04 Javascript
jquery解析XML及获取XML节点名称的实现代码
2016/05/18 Javascript
JS实现title标题栏文字不间断滚动显示效果
2016/09/07 Javascript
使用BootStrap实现悬浮窗口的效果
2016/12/13 Javascript
JavaScript订单操作小程序完整版
2017/06/23 Javascript
ReactNative Image组件使用详解
2017/08/07 Javascript
vue的全局提示框组件实例代码
2018/02/26 Javascript
基于webpack4.X从零搭建React脚手架的方法步骤
2018/12/23 Javascript
微信小程序授权登录解决方案的代码实例(含未通过授权解决方案)
2019/05/10 Javascript
在vue-cli 3中给stylus、sass样式传入共享的全局变量
2019/08/12 Javascript
vue+axios实现post文件下载
2019/09/25 Javascript
原生js+canvas实现验证码
2020/11/29 Javascript
python基础学习之如何对元组各个元素进行命名详解
2018/07/12 Python
python-docx文件定位读取过程(尝试替换)
2020/02/13 Python
python 按钮点击关闭窗口的实现
2020/03/04 Python
CSS3正方体旋转示例代码
2013/08/08 HTML / CSS
css3+jq创作含苞待放的荷花
2014/02/20 HTML / CSS
波兰最大的度假胜地和城市公寓租赁运营商:Sun & Snow
2018/10/18 全球购物
反四风对照检查材料思想汇报
2014/09/16 职场文书
个人查摆剖析材料
2014/10/16 职场文书
交通安全月活动总结
2015/05/08 职场文书
话题作文之关于呼唤
2019/11/29 职场文书
用React Native制作一个简单的游戏引擎
2021/05/27 Javascript
Nginx安装配置详解
2022/06/25 Servers