谷歌chrome 插件(擴展)開發——進階篇(c#本地程序和插件交互)上


     有了基礎篇的學習,我們就直奔主題,來完成本次c#和插件的交互之旅。

     在此之前,我稍微回顧下基礎知識。

     chrome插件涉及到的js類型:

      1、background.js  它的生命周期最長,直到瀏覽器關閉。它相當於插件的后台。

      2、content.js 它注入到頁面中,相當於頁面的一部分,和頁面中原始js共享Dom,但是不能直接相互調用。

      3、popup.js 彈出頁面,和background比較像,能夠訪問chrome中的大部分api。它的生命周期比較短,popup頁面關閉的時候,它就結束了。

我們來分析下,完成這個插件,必須做的事情:

  1、需要獲取頁面內容、地址、cookie

  2、把這些信息傳遞到本地的c#程序

  3、通過右鍵和popup兩種方式發起調用

  我們需要掌握 nativeMessaging,才能夠與客戶端通訊。chrome插件和客戶端發送json字符串,采用 stdio (標准輸入輸出流)。見配置文件 com.google.chrome.demo-win.json:

 1 {
 2   "name": "com.google.chrome.demo",
 3   "description": "Chrome Native Messaging API Example Host",
 4   //"path":"c:\\MyApp.exe",
 5   "path": "D:\\mywork\\notefirst\\NoteFirst2.0\\Clients\\UI\\bin\\x86\\Debug\\HtmlExtractorForChrome.exe",
 6   "type": "stdio",
 7   "allowed_origins": [
 8     "chrome-extension://bipggjnbpccmcdnkokjndjofbhijhcol/"
 9   ]
10 }

注意path的路徑當中需要雙斜杠,否則會報錯:

第2行的name名稱來自注冊表項:

HKEY_CURRENT_USER\Software\Google\Chrome\NativeMessagingHosts\com.google.chrome.demo,它的值指向配置:E:\BaiduYunDownload\Demo\com.google.chrome.demo-win.json

第8行,chrome-extension指的是插件的Id

注意,選中開發者模式,才能看到Id。

再看看插件的配置:

 1 {
 2     //  Extension ID: ndnigonbfjhpjlcabmadmkpdcfomenlp
 3     "manifest_version": 2,
 4 
 5     "name": "Invoke Native Application",
 6     "description": "example",
 7     "version": "1.0",
 8 
 9         "background": {
10 "scripts": ["background.js"]
11 },
12 
13     "browser_action": {
14         "default_icon" : "icon.png",
15         "default_popup": "popup.html"
16     },
17 
18 "content_scripts": [
19   {
20     "js": ["content_script.js"],
21     "matches": [
22       "http://*/*",
23       "https://*/*"
24     ],
25    
26     "run_at": "document_start"
27   }
28 ],
29 
30  "permissions": ["nativeMessaging","contextMenus","tabs"]
31 }

注意第30行的permissions權限配置,意思是我們需要訪問本地程序、右鍵菜單、瀏覽器tabs。

這篇我們先分析了將要做的事情以及弄好配置等等外圍事務,下一篇我們着重講代碼的具體實現。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM