找回密码
 立即注册
搜索
查看: 385|回复: 0

[js组件] 使用微信公众号判断当前网络为2G还是4G

  [复制链接]
发表于 2023-2-23 20:23 | 显示全部楼层 |阅读模式
引入js文件:
<script type="text/javascript" src="https://res.wx.qq.com/open/js/jweixin-1.2.0.js"></script>
判断网络状态:
<script>
    function wx_share(){
        var apiWx_jssdk = 'https://api.xxx.com/index/wx_jssdk/getSign';//请看
        var _url = location.href.split('#')[0];
        $.post(apiWx_jssdk, { url:_url }, function(data) {
            if(data.code != 200) {
                console.log('微信jssdk授权失败');
                return false;
            }
            wx.config({
                debug: false,//生产环境需要关闭debug模式
                appId: data.data.appId,//appId通过微信服务号后台查看
                timestamp: data.data.timestamp,//生成签名的时间戳
                nonceStr: data.data.nonceStr,//生成签名的随机字符串
                signature: data.data.signature,//签名
                jsApiList: [     // 所有要调用的 API 都要加到这个列表中
                    'getNetworkType',
                ]
            });

            wx.ready(function() {
                //获取当前网络状态
                wx.getNetworkType({
                  success: function (res) {
                      var wifi = res.networkType;
                      if(wifi == 'wifi'){
                          return false;
                      }
                      var msg = '正在使用非WIFI网络,播放直播将产生流量费用';
                      if(/Android/i.test(navigator.userAgent)){
                        alert(msg);
                    }else{
                        alert(msg);
                    }
                  },
                  fail: function (res) {
                    alert(JSON.stringify(res));
                  }
                });
            });
            wx.error(function(res){
                console.log("好像出错了!!");
            });
        },'json');
    }
    wx_share();
</script>
注:https://api.xxx.com/index/wx_jssdk/getSign返回数据格式为:
 //以下为PHP代码:

 $signPackage = array(
      "appId" => $this->appId,
      "nonceStr" => $nonceStr,
      "timestamp" => $timestamp,
      "url" => $url,
      "signature" => $signature,
      "rawString" => $string,
      "ticket" => $this->ticket,
      "accessToken" => $this->accessToken,
      "ticketData" => $this->ticketData,
      "accessTokenData" => $this->accessTokenData,
 );
 ajaxOut(200, $signPackage, 'ok');
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|学习笔记

GMT+8, 2024-10-18 14:33 , Processed in 0.028165 second(s), 14 queries , APCu On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表