chromeExtension.js 4.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186
  1. import { pageUrl, websiteUrl } from "@/http/configAPI.js"
  2. import { guid } from "@/uilts/help";
  3. export const LANDING_PAGE = {
  4. name: 'received_log',
  5. url: pageUrl
  6. }
  7. export const LANDING_PAGE_MID = {
  8. name: 'mid',
  9. url: pageUrl
  10. }
  11. export const LANDING_PAGE_JUMP_INFO = {
  12. name: 'jump_info',
  13. url: pageUrl
  14. }
  15. export const WEBSITE_USER_INFO = {
  16. name: 'userInfo',
  17. url: websiteUrl
  18. }
  19. export function setChromeStorage(params, callback) {
  20. try {
  21. if (callback) {
  22. chrome.storage.local.set(params, callback)
  23. } else {
  24. chrome.storage.local.set(params)
  25. }
  26. } catch (error) {
  27. console.error('catch', error)
  28. }
  29. }
  30. export function getChromeStorage(key = '', callback) {
  31. try {
  32. let params = {}
  33. params[key] = ''
  34. if (!callback) {
  35. return new Promise((resolve) => {
  36. chrome.storage.local.get(params, (item) => {
  37. if (item[key]) {
  38. resolve(JSON.parse(item[key]))
  39. } else {
  40. resolve(null)
  41. }
  42. })
  43. })
  44. }
  45. chrome.storage.local.get(params, (item) => {
  46. if (item[key]) {
  47. callback(JSON.parse(item[key]))
  48. } else {
  49. callback(null)
  50. }
  51. });
  52. } catch (error) {
  53. console.error('catch', error)
  54. }
  55. }
  56. // export function chromeSendMessage() {
  57. // try {
  58. // // chrome.runtime.sendMessage
  59. // } catch {
  60. // }
  61. // }
  62. export function setChromeCookie({
  63. name,
  64. url
  65. }, value_obj) {
  66. try {
  67. chrome.cookies.set({
  68. expirationDate: new Date().getTime() / 10,
  69. name: name,
  70. url: url,
  71. value: encodeURIComponent(JSON.stringify(value_obj)) || ''
  72. })
  73. } catch (error) {
  74. console.error('catch', error)
  75. }
  76. }
  77. export function getChromeCookie({ name = '', url = '', return_type = '' }, callback) {
  78. try {
  79. chrome.cookies.getAll({ name, url }, (res = []) => {
  80. let _str = ''
  81. if (Array.isArray(res) && res.length) {
  82. _str = res[0].value
  83. }
  84. if (_str) {
  85. if (return_type == 'str') {
  86. callback(_str)
  87. } else {
  88. callback(JSON.parse(decodeURIComponent(_str)))
  89. }
  90. } else {
  91. callback(null)
  92. }
  93. })
  94. } catch (error) {
  95. console.error('catch', error)
  96. }
  97. }
  98. export function removeChromeCookie(params, cb) {
  99. try {
  100. let { name, url } = params;
  101. chrome.cookies.remove({ name, url }, () => {
  102. cb && cb
  103. })
  104. } catch (error) {
  105. console.log('catch', error)
  106. }
  107. }
  108. export function sendChromeTabMessage(params, callback) {
  109. try {
  110. chrome.tabs.getCurrent((tab) => {
  111. chrome.tabs.sendMessage(tab.id, params, callback);
  112. })
  113. } catch (error) {
  114. console.log('catch', error)
  115. }
  116. }
  117. export function checkIsLogin(callback) {
  118. try {
  119. return new Promise((resolve) => {
  120. getChromeStorage('userInfo', (_userInfo) => {
  121. if (!_userInfo) {
  122. chrome.runtime.sendMessage(
  123. { actionType: "POPUP_LOGIN", data: "" },
  124. (response) => {
  125. console.log("res", response);
  126. }
  127. )
  128. callback && callback()
  129. resolve(_userInfo)
  130. } else {
  131. resolve(_userInfo)
  132. }
  133. })
  134. })
  135. } catch (error) {
  136. console.error('catch', error)
  137. }
  138. }
  139. let callback_arr = []
  140. export function httpContentToBack(data, callback) {
  141. try {
  142. let callback_id = guid()
  143. chrome.runtime.sendMessage({ actionType: "HTTP_CONTENT_TO_BACK", data, callback_id }, (res) => {
  144. if (res && callback) {
  145. callback_arr.push({
  146. callback_id,
  147. callback,
  148. })
  149. }
  150. })
  151. } catch (error) {
  152. console.error('catch', error)
  153. }
  154. }
  155. // 再找到它执行
  156. export function httpBackToContentCallBack(req) {
  157. try {
  158. for (let i in callback_arr) {
  159. if (callback_arr[i].callback_id == req.callback_id) {
  160. // 执行
  161. callback_arr[i].callback(req.data)
  162. // 删除
  163. callback_arr.splice(i, 1)
  164. break
  165. }
  166. }
  167. } catch (error) {
  168. console.error('catch', error)
  169. }
  170. }