在尋找插件開發資料的過程中找到了一個開發浏覽器插件的開源項目——firebreath
firebreath的安裝以及測試我就不再敘述了,可以參考大神的文章 。 http://www.blogjava.net/xiaomage234/archive/2012/08/28/386428.html
下面我主要介紹一下調試和打包。
火狐下的調試:
這也是樓主主推薦的調試方法。firebreath配合火狐的調試簡直可以說是渾然天成。如果讓火狐可以調試firebreath的代碼的話,需要對火狐浏覽器進行如下的設置。
谷歌浏覽器下的調試:
大多數情況下使用火狐浏覽器就可以完成工作,但是有時候不知道什麼情況,同樣的代碼在火狐下運行的很正常,但是一到谷歌下就出錯。如尋找插件的位置。火狐下插件的dll大小寫和生成的大小寫是一致的,而谷歌卻畫蛇添足版的全部轉化成了小寫,如下圖所示,同一個插件,打印出來的插件路徑卻不一樣,此時在程序中對這段字符進行操作時就會出現錯誤。
考慮到國內大多數用戶被360所毒害,而360使用的真是谷歌的內核,所以不得不考慮在谷歌下的各種問題。下面介紹在谷歌浏覽器下調試的步奏。
記住此pid。
打包:firebreath的打包使用的是 Vix打包工具,只要到CodePlex上下載Vix開發包。然後再一次進入 firebreath根目錄。重新運行一下 Prep2013.cmd firebreath會自動檢測系統是否安裝 Vix,如果暗轉的話,就會在Project文件夾下對應的 插件目錄下 生成 安裝 工程。只要編譯此安裝工程即可 生成安裝包。安裝工程如下圖所示:
所有的配置安裝過程都在 Sources下的IDCardReaderInstaller.wxs文件,如果我們需要配置額外的 dll在安裝包中的話,需要手動添加此dll進去,比如我需要把身份證讀卡器的公用dll包含進去。那麼就需要進行如下的配置
<Directory Id="PluginNameDir" Name="${FBSTRING_PluginName}"> <!--<Component Id="PluginNameDirComp" Guid="*"> <RemoveFolder Id="RemovePluginNameDir" On="uninstall" /> <RegistryValue Root="HKCU" Key="SOFTWARE\${COMPANY_NAME}\${PLUGIN_NAME}" Name="Uninstall" Type="string" Value="${FBSTRING_PLUGIN_VERSION}" KeyPath="yes" /> </Component> <Directory Id="INSTALLDIR" Name="${FBSTRING_PLUGIN_VERSION}">--> <Component Id="InstallDirComp" Guid="*"> <RemoveFolder Id="RemoveInstallDir" On="uninstall" /> <RegistryValue Root="HKCU" Key="SOFTWARE\${COMPANY_NAME}\${PLUGIN_NAME}\${FBSTRING_PLUGIN_VERSION}" Name="Uninstall" Type="string" Value="${FBSTRING_PLUGIN_VERSION}" KeyPath="yes" /> </Component> <Component Id="UniqueComponentId" Guid="07538E54-1C3F-4E8F-AC7E-270660B1E4D1"> <File Id="uniqueFileId" Source="F:\FireBreath-IdCard\build\bin\IDCardReader\Release\sdtapi.dll" /> <File Id="uniqueFileId" Source="F:\FireBreath-IdCard\build\bin\IDCardReader\Release\mwrf32.dll" /> </Component> <!--</Directory>--> </Directory>
這樣就會把sdtapi.dll和mwrf32.dll 包含到安裝目錄下。其它的節點的意思,可以到vix的官網上去查看各自表示的意義。