天天看點

mac 下基于firebreath 開發多浏覽器支援的浏覽器插件

mac 下基于firebreath 開發多浏覽器支援的浏覽器插件 

首先要區分什麼是浏覽器擴充和浏覽器插件;插件可以像本地程式一樣做的更多

一. 關于 firebreath

 http://www.firebreath.org

firebreath 是一個誇平台,誇浏覽器的,開發浏覽器插件架構;

利用firebreath開發的浏覽器插件,可以在多浏覽器上安裝;并且提供多種平台下的解決方案比如mac,windows

二. 關于mac 使用 firebreath 開發浏覽器插件

官方教程 http://www.firebreath.org/display/documentation/Building+on+Mac+OS+X

1. 必須的東西

安裝Cmake http://www.cmake.org/download/  建議下載下傳源碼包,檢視README 手動編譯安裝

mac 上安裝了 xocde

xcode 安裝了 Command Line Tools

firebreath 工具包從管網下載下傳

2.在下載下傳的frebreath包裡面

fbgen.py 是可以為你建立一個新的項目

prepmac.sh 可以為你編譯你的項目,生成一個基于xcode的工程,該工程使用xocde再編譯即可生成浏覽器插件

examples 為官方提供的幾個例子

 ./prepmac.sh examples 編譯項目,

如果出現cmake 錯誤;可能是cmake沒有安裝好;可以vim prepmac.sh 手動把cmake的指令路徑改為你下載下傳的cmake源碼裡面的bin/cmake路徑

注意:如果是自己建立的項目,會生成在projects 目錄,編譯的為duild目錄;官方demo編譯後為目錄 duildex

3. 用xcode 編譯生成的工程

 找到上面編譯的工程,用xcode 打開工程,編譯 選擇target all_build;

 如果編譯出錯,請選擇編譯的os x sdk 10.8 ; 不要用10.10;還有最好選用64位

4. 找到生成的插件 xxx.plugin

 如果xcode編譯成功了,會在項目下生成 對應的xxx.plugin 

如: buildex/projects/FBTestPlugin/Debug/FBTestPlugin.plugin

debug 和 release

5. 安裝插件 xxx.plugin

  mac 的浏覽器插件安裝;是把 插件放在了 ~/Library/Internet Plug-Ins/ 目錄下;做個連接配接和是copy進去者行

 如:做個連接配接 ln -s buildex/projects/FBTestPlugin/Debug/FBTestPlugin.plugin ~/Library/Internet Plug-Ins/

6:調試運作插件

 在安裝上插件之後,重新啟動浏覽器,并打開 生成的網頁FBControl.htm

 如: buildex/projects/FBTestPlugin/gen/FBControl.htm

 在浏覽器上允許插件運作,點選 click me 等;hello world 即可;

到這裡,一個使用firebreath 開發的浏覽器插件hello world 完了;

三:使用C++,C 利用firebreath 開發插件實作 本地功能的 js 調用

比如我建立了一個 Demo 工程;

那麼用Xcode 打開建立的 Demo 工程

在 Demo 目錄下,即是 結合 Firebreath開發 咱們要寫代碼的地方;

其他都是架構的依賴,就不要動了;在這裡可以看到架構自動生成的示例

source files 是 源代碼目錄,一般放我們內建的cpp,c還可以在這裡連接配接mac下的靜态類庫等

Header Files 是我們提供的 對js調用的 接口頭檔案;就是c++,c 的方法聲明,并利用Firebreath架構 注冊;以提供給js調用;在上面的source files裡面實作

一般主要操作 DemoApi.h 聲明方法,并注冊到架構;在DemoApi.cpp 裡面去實作;

Generated 為生成的網頁目錄

這裡我們隻關心FBControl.htm ; 在這裡,添加一些js代碼,在js代碼裡面,去調用 架構聲明的接口方法;

按照示例代碼來即可;

四:firebreath 使用,進階功能開發等

http://www.firebreath.org/display/documentation/Using+FireBreath

其他的,自己看文檔吧

我目前用這個架構是為了開發,在mac下用浏覽器調試usb的指紋裝置;

核心層是 usb指紋驅動, c++的;

利用firebrath可以 把指紋驅動c++代碼,寫在架構 裡,并注冊接口,給js調用;

實作js 操作指紋裝置

繼續閱讀