Selaa lähdekoodia

Find how to send message from PS

jherve 1 vuosi sitten
vanhempi
commit
06453f5f3c
3 muutettua tiedostoa jossa 11 lisäystä ja 9 poistoa
  1. 4 0
      src/Background.js
  2. 7 1
      src/Background.purs
  3. 0 8
      src/background.js

+ 4 - 0
src/Background.js

@@ -3,3 +3,7 @@ export function onClickedAddListener (fn) {
     return browser.browserAction.onClicked.addListener(fn);
   }
 }
+
+export function tabsSendMessage (tabId, message) {
+  return browser.tabs.sendMessage(tabId, message);
+}

+ 7 - 1
src/Background.purs

@@ -4,13 +4,17 @@ import Prelude
 
 import Effect (Effect)
 import Effect.Class.Console (log, logShow)
-import Effect.Uncurried (EffectFn1, mkEffectFn1)
+import Effect.Uncurried (EffectFn1, EffectFn2, mkEffectFn1, runEffectFn2)
+import Promise (Promise)
 
 type Tab = { id :: Int, index :: Int }
+type TabId = Int
+type Message = String
 
 type Listener a = EffectFn1 a Unit
 
 foreign import onClickedAddListener :: Listener Tab -> Effect Unit
+foreign import tabsSendMessage :: EffectFn2 TabId Message (Promise Message)
 
 main :: Effect Unit
 main = do
@@ -18,6 +22,8 @@ main = do
     listenerEff = mkEffectFn1 $ \e -> do
       logShow e
       log "Executed listener mkEffectFn1"
+      _ <- runEffectFn2 tabsSendMessage e.id "message from PS"
+      pure unit
 
   log "[bg] starting up"
 

+ 0 - 8
src/background.js

@@ -4,12 +4,4 @@ function main() {
   Background.main();
 }
 
-browser.browserAction.onClicked.addListener(async (tab) => {
-  try {
-    browser.tabs.sendMessage(tab.id, "Message from JS background");
-  } catch (error) {
-    error(error);
-  }
-});
-
 main();