日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Google Chrome Native Messaging开发实录(一)背景介绍

發布時間:2024/1/17 编程问答 43 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Google Chrome Native Messaging开发实录(一)背景介绍 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

最近接手了一個針對Google Chrome的需求,最終是使用Native Messaging來實現的。通過這個連載,將把本次開發從方案選定到編碼的全部過程進行完整的回顧,并記錄開發過程中踩過的各種坑,給首次接觸或希望使用chrome插件/擴展技術的朋友,提供一些經驗參考。

需求概要是這樣,項目本身是一個在線辦公的web應用,其中有一個功能模塊是刷卡考勤,原來的這個功能僅支持IE瀏覽器,具體是在某個頁面上,通過IE的AtiveX控件,顯示出連接在客戶機上的IDR讀卡器上識別到的卡片的卡號。新的需求要求這個功能要支持Chrome瀏覽器。

分析一下,目標是讓Chrome瀏覽器通過某個途徑,能夠達到和在IE瀏覽器上同樣的效果,而已知的條件是磁卡機廠商提供的AtiveX控件。由于這個項目中的磁卡機款式比較老,并不像現在市面上能買到的免驅的設備,電腦通過usb連接馬上就識別為HID Device,因此借助驅動和磁卡讀卡器通訊是避免不了的。另一個技術關鍵點是,Chrome本身提供的硬件訪問相關API也無法直接和讀卡器通訊,那么剩下可選的方案逃不出NaCl和Native Messaging。

接下來先看看NaCl,它確實是一項深受開發者喜愛的技術,在Google大力推動下,ppapi取代npapi成為Chrome唯一的核心插件方式,以往開發過的c/c++的組件和應用盡皆得以保留和web頁面交互,它的發布形式也相當豐富,nacl/pnacl甚至都可以通過web服務器獲取,和自己的web站點一起部署。遺憾的是,我手上可用的磁卡機的訪問組件,是隨ActiveX控件一起打包的win32下開發的x86類庫,更要命的是沒有.h頭文件和.lib庫,只有一個dll動態庫,也就是說,我是需要win32 api的,使用LoadLibrary和GetProcAddress才能調用到dll庫中需要的函數,結合NaCl SDK,最合適的方案應該是pepper plugin。但我最后否定了這個方案,原因是Chrome上注冊pepper plugin是通過命令行的,而且不是永久生效的,也許是我并沒有找到正確的方法,在時間j有限的前提下,我沒有深入下去。

NaCl

?

Pepper Plugin

?

所以,最后只有祭出Native Messaging這個大殺器了,它的原理很好理解,Chrome的沙箱開辟了一個跨進程通訊的通道,允許Chrome Extension擴展能發送消息給本地任何一個支持stdio的進程,并從這個進程獲得響應消息。這個方案對Chrome來說,需要開發一個擴展,對本地來說,需要一個控制臺程序或windows service,在時間和難度的考慮下,這就可以接受了。

?

Native Messaging

?

后續我將分成幾篇分別展示各個部分開發的內容,在本篇結尾,我分享幾個資源 ,是我在嘗試NaCl方案時,收集到的還不錯的資料,因為我也是頭一回接觸這個,所以類似開發指南和介紹的內容是相當難得的。

1.Google I/O 2012 - Native Client LIVE

2.CEF和PPAPI

3.Google I/O 2012 - Life of a Native Client Instr

轉載于:https://www.cnblogs.com/BeanHsiang/p/6580917.html

總結

以上是生活随笔為你收集整理的Google Chrome Native Messaging开发实录(一)背景介绍的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。