谷歌擴展V2升級V3一些功能的彙總

 

  1. 擴展的頁面通信
    1. service-worker.js(原v2版本的background.js)與popup頁面的通信
    2. popup頁面不能直接使用緩存(cookie等),必須在service-worker等頁面使用,使用sendMessage與service-worker通信,在service-worker獲取到緩存後再回傳給popup頁面
    3. js頁面與擴展的通信:js插件裏使用window.postMessage發送信息,content使用window.addEventListener進行監聽,並對信息進行分類後傳遞給service-worker也就是v2的background,這樣就間接的實現了數據的通信

  

 

    2.V3版本的content(注入頁面js)與v2版本不同,v3只能操作dom,與當前頁面也只能通過dom進行通信,故此不能直接和擴展進行通信,目前的解決方案是:

 

    1. 先定義好我們的js插件,當頁面引入插件後以api的形式通過插件與擴展進行交互
    2. js插件裏使用window.postMessage發送信息,content使用window.addEventListener進行監聽,並對信息進行分類後傳遞給service-worker也就是v2的background,這樣就間接的實現了數據的通信
    3. 同理反過來就是service-worker傳遞數據給當前使用擴展的頁面
    4. 需要注意的是每一步都需要一個唯一的id,不然就會導致數據傳遞錯亂

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章