weibo.js 5.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205
  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. var def = $.Deferred();
  42. WeiboJSBridge.invoke('unicomFreeTraffic', { "type": 0 }, {
  43. success: function(params) {
  44. def.resolve(params);
  45. },
  46. fail: function(params, code) {
  47. def.reject(params, code);
  48. },
  49. final: function(params) {
  50. def.reject(params);
  51. }
  52. });
  53. return def;
  54. }
  55. export function checkActiveResult() {
  56. var def = $.Deferred();
  57. WeiboJSBridge.invoke('unicomFreeSIM', {}, {
  58. success: function(params) {
  59. if (params.unicomFreeSIM == 1) {
  60. compnt.showAlert("激活成功~")
  61. def.resolve(params);
  62. } else {
  63. compnt.showAlert("激活失败")
  64. def.reject(params, code);
  65. }
  66. },
  67. fail: function(params, code) {
  68. def.reject(params, code);
  69. },
  70. final: function(params) {
  71. def.reject(params);
  72. }
  73. })
  74. return def;
  75. }
  76. export function getBrowserInfo() {
  77. var def = $.Deferred();
  78. // var params = {
  79. // "id": "2245755811",
  80. // "screen_name": "江涛的微博"
  81. // }
  82. // uid = params.id;
  83. // screen_name = params.screen_name;
  84. // def.resolve(params);
  85. WeiboJSBridge.invoke("getBrowserInfo", {}, function(params, success, code) {
  86. if (success) {
  87. uid = params.uid
  88. def.resolve(params);
  89. } else {
  90. if (code == WeiboJSBridge.STATUS_CODE.NO_RESULT) {
  91. def.reject(params, code);
  92. }
  93. }
  94. });
  95. return def;
  96. }
  97. export function getUserInfo() {
  98. var def = $.Deferred();
  99. // var params = {
  100. // "id": "2245755811",
  101. // "screen_name": "江涛的微博"
  102. // }
  103. // uid = params.id;
  104. // screen_name = params.screen_name;
  105. //
  106. // def.resolve(params);
  107. WeiboJSBridge.invoke("getUserInfo", {}, (params, success, code) => {
  108. if (success) {
  109. // alert("用户信息是:" + JSON.stringify(params))
  110. uid = params.id;
  111. screen_name = params.screen_name;
  112. def.resolve(params);
  113. } else {
  114. if (code == WeiboJSBridge.STATUS_CODE.NO_RESULT) {
  115. def.reject(params, code);
  116. }
  117. }
  118. });
  119. return def;
  120. }
  121. /**
  122. * 判断当前客户端版本是否达到指定版本
  123. * @param targetVersionString | String | "8.9.3" | 必须为三段版本号,中间用.分隔
  124. * @return moreThanTarget | Boolean | true | 是否达到指定版本
  125. * @author shaobo3@
  126. * @example
  127. * checkWeiboVersion('9.10.1');
  128. */
  129. export function checkWeiboVersion(targetVersionString = "9.11.2") {
  130. if (!targetVersionString) {
  131. return false;
  132. }
  133. var targetVersionArr = getVersionArr(targetVersionString);
  134. var clientVersionArr = getVersionArr();
  135. var part1Result = compareVer(clientVersionArr[0], targetVersionArr[0]);
  136. var part2Result = compareVer(clientVersionArr[1], targetVersionArr[1]);
  137. var part3Result = compareVer(clientVersionArr[2], targetVersionArr[2]);
  138. //先比较第一位版本号,不相等直接返回结果,相等判断第二位版本号;
  139. if (part1Result !== -1) return part1Result;
  140. //先比较第二位版本号,不相等直接返回结果,相等判断第三位版本号;
  141. if (part2Result !== -1) return part2Result;
  142. //先比较第三位版本号,不相等直接返回结果,全部相等则返回true;
  143. if (part3Result !== -1) return part3Result;
  144. return true;
  145. }
  146. const REG = /__weibo__(\d+).(\d+).(\d+)/;
  147. /**
  148. * 获取字符串中的版本号,并分段输出为数组
  149. * @param versionStr | string | "8.9.3" | 必须为三段版本号,中间用.分隔
  150. * @return versionArr | Array | [8,9,3]
  151. */
  152. var getVersionArr = (versionStr) => {
  153. var ua = navigator.userAgent;
  154. var _str = versionStr ? `__weibo__${versionStr}` : ua;
  155. var versionArr = [];
  156. if (REG.test(_str)) {
  157. versionArr.push(parseInt(RegExp.$1));
  158. versionArr.push(parseInt(RegExp.$2));
  159. versionArr.push(parseInt(RegExp.$3));
  160. return versionArr;
  161. }
  162. return [0, 0, 0];
  163. };
  164. var compareVer = (version1, version2) => {
  165. var result = -1;
  166. if (version1 > version2) {
  167. result = true;
  168. }
  169. if (version1 < version2) {
  170. result = false;
  171. }
  172. return result;
  173. };