App-Android(使用App+htnl5框架,解决消息推送兼容SignalR问题)
loulijun2021
2022-10-19 d75b0b71c2feed580bf765c0d6007b3c1f17ca74
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
/**
 * 传统HTML支持RPX工具
 *
 * 使用方法:
 * 1、引入
 * 2、在body之前执行
 *
 * 注意事项:
 * 1、简写的不认(比如border:#f3f3f3 1px solid是不识别的)
 * 2、写的时候要用px,不要用rpx
 * 3、不支持不同源的link
 * 4、只能执行一次,否则会算错
 * 5、不要试图往resize事件里放
 *
 * @author 杨若瑜
 */
 (function () {
  var isReady = false;
  var readyList = [];
  var timer;
  whenDocumentReady = function (fn) {
    if (isReady) fn.call(document);
    else
      readyList.push(function () {
        return fn.call(this);
      });
    return this;
  };
  var onDOMReady = function () {
    for (var i = 0; i < readyList.length; i++) {
      readyList[i].apply(document);
    }
    readyList = null;
  };
  var bindReady = function (evt) {
    if (isReady) return;
    isReady = true;
    onDOMReady.call(window);
    if (document.removeEventListener) {
      document.removeEventListener('DOMContentLoaded', bindReady, false);
    } else if (document.attachEvent) {
      document.detachEvent('onreadystatechange', bindReady);
      if (window == window.top) {
        clearInterval(timer);
        timer = null;
      }
    }
  };
 
  if (document.addEventListener) {
    document.addEventListener('DOMContentLoaded', bindReady, false);
  } else if (document.attachEvent) {
    document.attachEvent('onreadystatechange', function () {
      if (/loaded|complete/.test(document.readyState)) bindReady();
    });
 
    if (window == window.top) {
      timer = setInterval(function () {
        try {
          isReady || document.documentElement.doScroll('left');
        } catch (e) {
          return;
        }
        bindReady();
      }, 5);
    }
  }
})();
 
let rpx4html = () => {
  let globalWidth = document.documentElement.clientWidth;
  let perRpx = globalWidth / 750;
  for (let ssi in document.styleSheets) {
    let sheet = document.styleSheets[ssi];
    if (sheet.cssRules) {
      for (let cri in sheet.cssRules) {
        let rule = sheet.cssRules[cri];
        for (let si in rule.style) {
          let name = rule.style[si];
          let value = rule.style[name];
          if (value && value.indexOf('px') > -1 && value.search('^[0-9]+px$') > -1) {
            let num = new Number(value.match('[0-9]+')[0]);
            rule.style[name] = num * perRpx + 'px';
          }
        }
      }
    }
  }
};
 
whenDocumentReady(rpx4html);