App-Android(使用App+htnl5框架,解决消息推送兼容SignalR问题)
loulijun2021
2022-10-21 0ab4bf8f3982bdee9962076f29c5664185328517
unpackage/cache/wgt/H5EDA0853/pages/xtsy/index.html
@@ -20,178 +20,17 @@
      <script type="text/javascript" src="../../js/http.js"></script>
      <script type="text/javascript" src="../../js/global.js"></script>
       <script src="http://121.196.36.24:8001/Scripts/jquery-3.4.1.min.js"></script>
      <!-- <script src="http://121.196.36.24:8001/Scripts/jquery-3.4.1.min.js"></script>
       <script src="http://121.196.36.24:8001/Scripts/jquery.signalR-2.2.2.min.js"></script>
       <script src="http://121.196.36.24:8001/SignalR/Hubs"></script>
       <script src="http://121.196.36.24:8001/SignalR/Hubs"></script> -->
      <script type="text/javascript">
         var pushServer = "http://demo.dcloud.net.cn/push/?";
         var message = null;
         // 监听plusready事件
         document.addEventListener("plusready", function() {
            message = document.getElementById("message");
            // 监听点击消息事件
            plus.push.addEventListener("click", function(msg) {
               // 判断是从本地创建还是离线推送的消息
               switch (msg.payload) {
                  case "LocalMSG":
                     outSet("点击本地创建消息启动:");
                     break;
                  default:
                     outSet("点击离线推送消息启动:");
                     break;
               }
               // 提示点击的内容
               plus.nativeUI.alert(msg.content);
               // 处理其它数据
               logoutPushMsg(msg);
            }, false);
            // 监听在线消息事件
            plus.push.addEventListener("receive", function(msg) {
               if (msg.aps) { // Apple APNS message
                  outSet("接收到在线APNS消息:");
               } else {
                  outSet("接收到在线透传消息:");
               }
               logoutPushMsg(msg);
            }, false);
         }, false);
         /**
          * 日志输入推送消息内容
          */
         function logoutPushMsg(msg) {
            outLine("title: " + msg.title);
            outLine("content: " + msg.content);
            if (msg.payload) {
               if (typeof(msg.payload) == "string") {
                  outLine("payload(String): " + msg.payload);
               } else {
                  outLine("payload(JSON): " + JSON.stringify(msg.payload));
               }
            } else {
               outLine("payload: undefined");
            }
            if (msg.aps) {
               outLine("aps: " + JSON.stringify(msg.aps));
            }
         }
         /**
          * 获取本地推送标识信息
          */
         function getPushInfo() {
            outSet("获取客户端推送标识信息:");
            plus.push.getClientInfoAsync(function(info) {
               outLine('Success');
               outLine(JSON.stringify(info));
            }, function(e) {
               outLine('Failed');
               outLine(JSON.stringify(e));
            });
         }
         /**
          * 本地创建一条推动消息
          */
         function createLocalPushMsg(msg) {
            var cont = $('#cont').val();
            var options = {
               cover: false
            };
            plus.push.createMessage(msg, "LocalMSG", options);
            outSet("创建本地消息成功!");
            outLine("请到系统消息中心查看!");
            if (plus.os.name == "iOS") {
               outLine('*如果无法创建消息,请到"设置"->"通知"中配置应用在通知中心显示!');
            }
         }
         /**
          * 读取所有推送消息
          */
         function listAllPush() {
            var msgs = null;
            switch (plus.os.name) {
               case "Android":
                  msgs = plus.push.getAllMessage();
                  break;
               default:
                  break;
            }
            if (!msgs) {
               outSet("此平台不支持枚举推送消息列表!");
               return;
            }
            outSet("枚举消息列表(" + msgs.length + "):");
            for (var i in msgs) {
               var msg = msgs[i];
               outLine(i + ": " + msg.title + " - " + msg.content);
            }
         }
         /**
          * 清空所有推动消息
          */
         function clearAllPush() {
            plus.push.clear();
            outSet("清空所有推送消息成功!");
         }
         $(function() {
            //前端Hub的使用,注意的是,Hub的名字是ChatHub,这里使用时首字母小写
            // var work = $.connection.chatHub;
            var work = $.connection.chatHub;
            //对应后端的SendMessage函数,消息接收函数
            work.client.sendMessage = function(msg) {
               console.log(msg,1)
               createLocalPushMsg(msg)
            };
            //后端SendLogin调用后,产生的loginUser回调
            work.client.loginUser = function(userlist) {
               // console.log(userlist, 9)
               // reloadUser(userlist);
            };
            $.connection.hub.url = 'http://121.196.36.24:8001/signalr'
            //hub连接开启
            $.connection.hub.start().done(function() {
               var username = localStorage.getItem('username');
               //发送上线信息
               work.server.sendLogin(username);
               // const aaa = [{
               //    "code": "Q",
               //    "name": "呼叫质量",
               //    "children": [{
               //       "usercode": "999",
               //       "username": "楼先生"
               //    }]
               // }]
               // work.server.sendByGroupList('楼先生', 'CJ002', 'SB001', aaa)
            });
         });
         //重新加载用户列表
         // var reloadUser = function() {
         //    $("#username").empty();
         //    for (i = 0; i < 5; i++) {
         //       $("#username").append("<option value=" + i + ">" + i + "</option>");
         //    }
         // }
      </script>
      <script src="../../js/jquery-3.4.1.min.js"></script>
      <script src="../../js/jquery.signalR-2.2.2.min.js"></script>
      <script src="../../js/Hubs.js"></script>
      <script type="text/javascript" src="../../js/msg.js"></script>
@@ -324,12 +163,12 @@
         },
         mounted() {
            this.getfirstMenu()
            this.getLoginAppAnDonMessage()
            setInterval(()=>{
            setInterval(() => {
               this.getLoginAppAnDonMessage()
            },1000*10)
            }, 1000 * 10)
         },
         methods: {
            onRefresh() {
@@ -339,7 +178,7 @@
                  this.getLoginAppAnDonMessage()
                  // vant.Notify('刷新成功');
                  this.isLoading = false;
               }, 1000);
            },