weibo.js 6.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203
  1. import * as compnt from "../../../public/js/compnt.js";
  2. export var os = {};
  3. export var app = {};
  4. export var uid = undefined;
  5. export var screen_name = undefined;
  6. /**
  7. * 检测客户端环境
  8. */
  9. export function checkClientEnvironment() {
  10. var ua = navigator.userAgent;
  11. var ANDROID_REG = /(Android);?[\s\/]+([\d.]+)?/;
  12. var IPAD_REG = /(iPad).*OS\s([\d_]+)/;
  13. var IPHONE_REG = /(iPhone\sOS)\s([\d_]+)/;
  14. var IQIYI_REG = /iqiyi/
  15. var QLIVE_REG = /QQLiveBrowser/;
  16. var WECHAT_REG = /MicroMessenger/;
  17. var WEIBO_REG = /__weibo__/;
  18. if (ua.match(ANDROID_REG)) {
  19. os.android = true;
  20. }
  21. if (ua.match(IPAD_REG)) {
  22. os.ipad = true;
  23. }
  24. if (ua.match(IPHONE_REG)) {
  25. os.ios = true;
  26. }
  27. if (ua.match(IQIYI_REG)) {
  28. app.iqiyi = true
  29. }
  30. if (ua.match(QLIVE_REG)) {
  31. app.qlive = true
  32. }
  33. if (ua.match(WECHAT_REG)) {
  34. app.wechat = true
  35. }
  36. if (ua.match(WEIBO_REG)) {
  37. app.weibo = true;
  38. }
  39. }
  40. export function active() {
  41. return new Promise(function(resolve, reject) {
  42. WeiboJSBridge.invoke('unicomFreeTraffic', {"type": 0}, {
  43. success: function(params) {
  44. //compnt.showAlert(JSON.stringify(params))
  45. // compnt.showAlert("激活成功~")
  46. resolve(params);
  47. },
  48. fail: function(params, code) {
  49. // compnt.showAlert("请激活以后开始享受免流")
  50. reject(params, code);
  51. },
  52. final: function(params) {
  53. reject(params);
  54. }
  55. });
  56. })
  57. }
  58. export function checkActiveResult() {
  59. return new Promise(function(resolve, reject) {
  60. WeiboJSBridge.invoke('unicomFreeSIM', {}, {
  61. success: function(params) {
  62. //compnt.showAlert(JSON.stringify(params))
  63. // compnt.showAlert("激活成功~")
  64. if (params.unicomFreeSIM == 1) {
  65. compnt.showAlert("激活成功~")
  66. resolve(params);
  67. } else {
  68. compnt.showAlert("激活失败")
  69. reject(params, code);
  70. }
  71. },
  72. fail: function(params, code) {
  73. // compnt.showAlert("请激活以后开始享受免流")
  74. reject(params, code);
  75. },
  76. final: function(params) {
  77. reject(params);
  78. }
  79. })
  80. })
  81. }
  82. export function getBrowserInfo() {
  83. return new Promise(function(resolve, reject) {
  84. WeiboJSBridge.invoke("getBrowserInfo", {}, function (params, success, code) {
  85. if (success) {
  86. // alert("用户信息是:" + JSON.stringify(params))
  87. uid = params.uid
  88. resolve(params);
  89. } else {
  90. if (code == WeiboJSBridge.STATUS_CODE.NO_RESULT) {
  91. // do something.
  92. reject(params, code);
  93. }
  94. }
  95. });
  96. /*WeiboJSBridge.invoke('getBrowserInfo', {}, {
  97. success: function(params) {
  98. //compnt.showAlert(JSON.stringify(params))
  99. //compnt.showAlert(params.uid);
  100. uid = params.uid
  101. resolve(params);
  102. },
  103. fail: function(params, code) {
  104. reject(params, code);
  105. },
  106. final: function(params) {
  107. reject(params);
  108. }
  109. });*/
  110. })
  111. }
  112. export function getUserInfo() {
  113. return new Promise(function(resolve, reject) {
  114. WeiboJSBridge.invoke("getUserInfo", {}, (params, success, code) => {
  115. if (success) {
  116. // alert("用户信息是:" + JSON.stringify(params))
  117. uid = params.id;
  118. screen_name = params.screen_name;
  119. resolve(params);
  120. } else {
  121. if (code == WeiboJSBridge.STATUS_CODE.NO_RESULT) {
  122. reject(params, code);
  123. }
  124. }
  125. });
  126. })
  127. }
  128. /**
  129. * 判断当前客户端版本是否达到指定版本
  130. * @param targetVersionString | String | "8.9.3" | 必须为三段版本号,中间用.分隔
  131. * @return moreThanTarget | Boolean | true | 是否达到指定版本
  132. * @author shaobo3@
  133. * @example
  134. * checkWeiboVersion('9.10.1');
  135. */
  136. export function checkWeiboVersion(targetVersionString = "9.11.2") {
  137. if (!targetVersionString) {
  138. return false;
  139. }
  140. var targetVersionArr = getVersionArr(targetVersionString);
  141. var clientVersionArr = getVersionArr();
  142. var part1Result = compareVer(clientVersionArr[0], targetVersionArr[0]);
  143. var part2Result = compareVer(clientVersionArr[1], targetVersionArr[1]);
  144. var part3Result = compareVer(clientVersionArr[2], targetVersionArr[2]);
  145. //先比较第一位版本号,不相等直接返回结果,相等判断第二位版本号;
  146. if (part1Result !== -1) return part1Result;
  147. //先比较第二位版本号,不相等直接返回结果,相等判断第三位版本号;
  148. if (part2Result !== -1) return part2Result;
  149. //先比较第三位版本号,不相等直接返回结果,全部相等则返回true;
  150. if (part3Result !== -1) return part3Result;
  151. return true;
  152. }
  153. const REG = /__weibo__(\d+).(\d+).(\d+)/;
  154. /**
  155. * 获取字符串中的版本号,并分段输出为数组
  156. * @param versionStr | string | "8.9.3" | 必须为三段版本号,中间用.分隔
  157. * @return versionArr | Array | [8,9,3]
  158. */
  159. var getVersionArr = (versionStr) => {
  160. var ua = navigator.userAgent;
  161. var _str = versionStr ? `__weibo__${versionStr}` : ua;
  162. var versionArr = [];
  163. if (REG.test(_str)) {
  164. versionArr.push(parseInt(RegExp.$1));
  165. versionArr.push(parseInt(RegExp.$2));
  166. versionArr.push(parseInt(RegExp.$3));
  167. return versionArr;
  168. }
  169. return [0, 0, 0];
  170. };
  171. var compareVer = (version1, version2) => {
  172. var result = -1;
  173. if (version1 > version2) {
  174. result = true;
  175. }
  176. if (version1 < version2) {
  177. result = false;
  178. }
  179. return result;
  180. };