chromeExtension.js 3.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154
  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(error)
  28. }
  29. }
  30. export function getChromeStorage(key = '', callback) {
  31. let params = {}
  32. params[key] = ''
  33. if (!callback) {
  34. return new Promise((resolve) => {
  35. chrome.storage.local.get(params, (item) => {
  36. if (item[key]) {
  37. resolve(JSON.parse(item[key]))
  38. } else {
  39. resolve(null)
  40. }
  41. });
  42. })
  43. }
  44. chrome.storage.local.get(params, (item) => {
  45. if (item[key]) {
  46. callback(JSON.parse(item[key]))
  47. } else {
  48. callback(null)
  49. }
  50. });
  51. }
  52. // export function chromeSendMessage() {
  53. // try {
  54. // // chrome.runtime.sendMessage
  55. // } catch {
  56. // }
  57. // }
  58. export function setChromeCookie({
  59. name,
  60. url
  61. }, value_obj) {
  62. chrome.cookies.set({
  63. expirationDate: new Date().getTime() / 10,
  64. name: name,
  65. url: url,
  66. value: encodeURIComponent(JSON.stringify(value_obj)) || ''
  67. })
  68. }
  69. export function getChromeCookie({ name = '', url = '' }, callback) {
  70. try {
  71. chrome.cookies.getAll({ name, url }, (res = []) => {
  72. let _str = ''
  73. if (Array.isArray(res) && res.length) {
  74. _str = res[0].value
  75. }
  76. if (_str) {
  77. callback(JSON.parse(decodeURIComponent(_str)))
  78. } else {
  79. callback(null)
  80. }
  81. })
  82. } catch (error) {
  83. console.error('catch', error)
  84. }
  85. }
  86. export function removeChromeCookie(params, cb) {
  87. let { name, url } = params;
  88. chrome.cookies.remove({ name, url }, () => {
  89. cb && cb
  90. })
  91. }
  92. export function sendChromeTabMessage(params, callback) {
  93. chrome.tabs.getCurrent((tab) => {
  94. chrome.tabs.sendMessage(tab.id, params, callback);
  95. })
  96. }
  97. export function checkIsLogin(callback) {
  98. return new Promise((resolve) => {
  99. getChromeStorage('userInfo', (_userInfo) => {
  100. if (!_userInfo) {
  101. chrome.runtime.sendMessage(
  102. { actionType: "POPUP_LOGIN", data: "" },
  103. (response) => {
  104. console.log("res", response);
  105. }
  106. )
  107. callback && callback()
  108. resolve(_userInfo)
  109. } else {
  110. resolve(_userInfo)
  111. }
  112. })
  113. })
  114. }
  115. let callback_arr = []
  116. export function httpContentToBack(data, callback) {
  117. let callback_id = guid()
  118. chrome.runtime.sendMessage({ actionType: "HTTP_CONTENT_TO_BACK", data, callback_id }, (res) => {
  119. if (res && callback) {
  120. callback_arr.push({
  121. callback_id,
  122. callback,
  123. })
  124. }
  125. })
  126. }
  127. // 再找到它执行
  128. export function httpBackToContentCallBack(req) {
  129. for (let i in callback_arr) {
  130. if (callback_arr[i].callback_id == req.callback_id) {
  131. // 执行
  132. callback_arr[i].callback(req.data)
  133. // 删除
  134. callback_arr.splice(i, 1)
  135. break
  136. }
  137. }
  138. }