0

복잡한 Chrome 확장 프로그램을 Firefox 부가 기능으로 변환하는 데 문제가 있습니다. 크롬 확장에서, 저자는Chrome 확장 프로그램 (Chrome 관련 API 포함)을 Firefox 부가 기능으로 변환하는 방법은 무엇입니까?

  • chrome.extension.sendMessage
  • chrome.browserAction.setIcon
  • webkitNotifications.createNotification
  • chrome.tabs.sendMessage
  • chrome.extension.onMessage.addListener
  • chrome.browserAction.onClicked.addListener
  • chrome.privacy.services.autofillEnabled.get
  • 같은 일부 크롬 API를 사용하여 chrome.tabs.query
  • localStorage

  • chrome.runtime.onInstalled.addListener
  • .

    Firefox 부가 기능 코드에서 이러한 메소드를 구현하는 방법을 모르겠습니다. 이러한 API 중 일부는 콜백 함수를 사용하여 호출 할 수 있습니다. 예를 들어 :

    chrome.extension.sendMessage ({ 
         type: "get.identitieswithurl", 
         originUrl: lgmIdentitySave.originUrl, 
         actionUrl: lgmIdentitySave.actionUrl 
        }, 
        function (resultIdentities) { 
         if(resultIdentities != null && resultIdentities.length > 0) { 
          lgmIdentitiesPage = resultIdentities; 
          fillFormsWithCredential(resultIdentities[0]); 
          if(resultIdentities.length > 1 && lgmSuggestionSelectIdDismissed == false) { 
           showSelectIdentitySuggestionBar(); 
          } 
         } 
        } 
    );  
    

    this question에서, 나는 파이어 폭스 코드가

    // main add-on script 
    pageMod.PageMod({ 
        include: "*.org", 
        contentScriptFile: self.data.url("my-script.js"), 
        // Send the content script a message inside onAttach 
        onAttach: function (worker) { 
         worker.port.emit("replacePage", "Page matches ruleset"); 
        } 
    });  
    

    처럼 쓸 수 있다는 사실을 알고하지만 난 여전히 콜백 함수를 추가하는 방법을 모르겠어요.

  • +0

    sdk/simple-storage는 브록 - 아담스 @ 완벽한 편집 주셔서 감사합니다 참조하십시오. – penkzhou

    +0

    당신을 진심으로 환영합니다. 행운을 빕니다. –

    답변

    8

    목록을 살펴 보겠습니다. 답을 통해, 관련 documentation을 참조 할 것입니다. 파이어 폭스 부가 기능 개발을 시작하면서 우스꽝스러운 점이 있다면 Getting started 튜토리얼을 읽으십시오.

    시작하기 전에 또한 modulesSDK Idioms을 읽으십시오 (마지막은 Firefox 부가 기능 SDK 세계의 중요한 개념에 대한 설명이므로 중요합니다).

    • chrome.extension.sendMessage/chrome.tabs.sendMessage/ chrome.extension.onMessage.addListener
      sdk/page-mod 모듈 작업과 메시지를 주위에 전달하는 방법을 배울 수 Content scripts을 참조하십시오.

    • chrome.browserAction.setIcon 나는 파이어 폭스 크롬의 chrome.browserAction API의 전체 구현하는 SDK 모듈을 작성했습니다 chrome.extension.onMessage.addListener
      . 설치 지침 및 문서는 https://github.com/Rob--W/browser-action-jplib에 있습니다.

    • webkitNotifications.createNotification
      sdk/notifications 모듈을 참조하십시오.

    • chrome.privacy.services.autofillEnabled.get
      sdk/preferences/service 모듈을 참조하십시오. 선호도 식별자 목록은 about:config entries 문서에서 확인할 수 있습니다.구체적인 예를 들면 :

      var prefName = 'browser.formfill.enable'; 
      var prefService = require("sdk/preferences/service"); 
      var isAutoFillEnabled = prefService.get(prefName); // true or false 
      
    • 확장은, 예를 들어, loadReason property of the self module를 읽고에 의해 결정될 수있다 설치 여부
    • chrome.runtime.onInstalled.addListener

      if (require('sdk/self').loadReason == 'install') { 
          // Do something on the very first install 
      } 
      
    • chrome.tabs.query
      sdk/tabs 모듈 반복기이다. 객체를 반복하면서 결과를 직접 필터링 할 수 있습니다.

    • localStorage

    +0

    애드온 빌더로 개발 한 파이어 폭스 부가 기능은 크롬 확장 기능과 동일한 기능을 제공합니까? – penkzhou

    +0

    @ dapengalways 올바르게 구현 한 경우 예. Firefox 부가 기능은 Chrome 확장 기능보다 강력합니다. Firefox 부가 기능은 Firefox에서 신뢰하며 동일한 권한 수준에서 실행되기 때문입니다. –

    +0

    답변을 주셔서 감사합니다. firefox의 main.js (다른 모듈이 필요할 수도 있음) 부분은 크롬 확장의 배경 부분과 같습니다. 그렇습니까? 크롬 확장의 배경 부분에 js 파일이 많이있을 때, 이에 따라 firefox 애드온에서이 js 파일을 main.js 모듈로 변경해야하며, browse.jar가 열리면 main.js가 호출됩니다. 맞습니까? – penkzhou