成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

帶你開發(fā)一個Chrome版的小程序

開發(fā) 前端
開發(fā)一個 Chrome 擴展程序, 其實非常簡單,而且很有趣。

開發(fā)一個 Chrome 擴展程序, 其實非常簡單,而且很有趣。

Chrome 擴展程序

上次跟大家提到 Chrome 應用商店,于是探究了一下開發(fā)一個 Chrome 擴展程序有多難, 經(jīng)過一番研究,發(fā)現(xiàn)其實并不難。 下面就帶你體驗一下如何開發(fā)一個二維碼生成插件。

[[189705]]

首先創(chuàng)建一個目錄用于存放 Chrome 擴展程序的所有資源,比如 qrcode。 目錄創(chuàng)建好后,然后在這個目錄中創(chuàng)建一個文件名為 manifest.json 的文件。 這個文件用于存放程序的元信息:

 

  1.   "manifest_version": 2, 
  2.  
  3.   "name""QR Code"
  4.   "description""Generate QR Code for web page."
  5.   "version""1.0"
  6.  
  7.   "browser_action": { 
  8.     "default_icon""icon.png"
  9.     "default_popup""popup.html"
  10.     "default_title""Generate QRCode" 
  11.   }, 
  12.   "permissions": [ 
  13.     "activeTab"     
  14.   ] 

咱們來簡單講解一下這個清單文件。 manifest_version 表示清單版本號,目前用 2 即可。 name , description 和 version 用于指定應用的名稱,描述和版本。

browser_action 屬性就是在瀏覽器地址欄上面的按鈕, 它的子屬性定義了按鈕的圖標,默認主頁,標題等:

帶你開發(fā)一個Chrome版的小程序

接下來的 permissions 用于定義擴展程序的權(quán)限,我們這里申請了 activeTab 權(quán)限,其實就是獲取當前標簽頁的信息,用于生成二維碼。

開始實踐

準備工作完成了, 我們首先要開發(fā) popup.html, 這個是我們擴展程序的主界面。 沒錯,它其實就是一個 html 頁面,因為擴展程序都是其實也都是 Chrome 內(nèi)核來解析的,用 web 技術(shù)來開發(fā)自然最合適不過。

  1. <!doctype html> 
  2. <html> 
  3.   <head> 
  4.     <title>QR Code</title> 
  5.     <!-- 省略樣式表代碼 --> 
  6.     <script src="jquery-3.2.1.min.js"></script> 
  7.     <script src="jquery.qrcode.min.js"></script> 
  8.     <script src="popup.js"></script> 
  9.  
  10.   </head> 
  11.   <body> 
  12.     <div id="title">QR Code</div> 
  13.     <div id="url"></div> 
  14.     <div id="image-result" style="width:270px;height:270px;">     
  15.     </div> 
  16.   </body> 
  17. </html> 

其實就是一個普通的 html 頁面,只要有基本的 web 開發(fā)基礎(chǔ),詳細這個都不難看懂。 這里要說一下的就是引入的幾個 js 文件。

一個是 jQuery,是的你沒看錯,你可以使用 jQuery 來開發(fā) Chrome 程序。

另外一個我們需要的組件就是 jquery.qrcode, 它用來給指定的字符串生成二維碼圖片。這里不多講解,有興趣的朋友可以參考它的 Github 主頁: https://github.com/jeromeetienne/jquery-qrcode 。

然后就是 popup.js, 這是我們擴展程序的主要邏輯代碼。

讓我們再來看看它里面有什么:

 

  1. functiongetCurrentTabUrl(callback){  
  2.   var queryInfo = { 
  3.     active: true
  4.     currentWindow: true 
  5.   }; 
  6.    chrome.tabs.query(queryInfo, function(tabs){  
  7.     var tab = tabs[0]; 
  8.     var url = tab.url; 
  9.     console.assert(typeof url == 'string''tab.url should be a string'); 
  10.     callback(url);  
  11.   }); 

首先定義一個 getCurrentTabUrl 函數(shù), 這個函數(shù)唯一的作用就是獲取當前用戶打開標簽的 URL 地址。 這里用到了 Chrome 的內(nèi)部 JS 函數(shù) chrome.tabs.query。 傳入了兩個參數(shù), ***個 queryInfo 是查詢條件, 我們查詢的是當前窗口的激活標簽。

然后第二個參數(shù)是一個 callback,查詢成功后, 會吧相應的 tab 信息返回過來。 我們?nèi)〉竭@個 tab 的 URL,然后再調(diào)用 callback 返回給調(diào)用方即可。

這里要說到一點, Chrome 擴展程序的大多數(shù)接口都是異步調(diào)用的。 就比如我們這次用到的 chrome.tabs.query。 好了, 具體細節(jié)不再贅述, Chrome 提供了非常豐富的 API 供我們調(diào)用。 完整的 API 文檔可以查詢官方文檔: https://developer.chrome.com/extensions/api_index

我們再繼續(xù)看主程序:

 

  1. functionrenderStatus(statusText){    
  2.   document.getElementById('url').textContent = statusText;  
  3.  
  4. document.addEventListener('DOMContentLoaded'function(){  
  5.   getCurrentTabUrl(function(url){  
  6.     renderStatus(url); 
  7.     var result = $('#image-result');   
  8.     result.qrcode({ 
  9.       text: url 
  10.     });      
  11.   }); 
  12. }); 

這里使用 DOMContentLoaded 事件,在擴展程序打開的時候調(diào)用上面我們定義的 getCurrentTabUrl 方法獲取當前標簽的 URL。 然后使用這個 URL 調(diào)用 jquery.qrcode 的方法生成二維碼圖片并設(shè)置到我們 html 頁面中 image-result 標簽中。

renderStatus 方法只是把 URL 顯示到頁面的標簽上,相信你不難看懂。 這里我們省略了 CSS 樣式相關(guān)的代碼,完整的代碼我已經(jīng)放到 Github 上,大家可以在這里看到 https://github.com/swiftcafex/chrome-qrcode

開始調(diào)試

到此為止,我們這個簡單的二維碼擴展程序就開發(fā)完成了。 現(xiàn)在改把它安裝到 Chrome 中體驗一下了。 我們現(xiàn)在的目錄結(jié)構(gòu)應該是這樣的:

帶你開發(fā)一個Chrome版的小程序

程序?qū)懞昧耍F(xiàn)在要解決的事情就是怎么把它安裝到 Chrome 中。 首先在 Chrome 的地址欄中輸入 chrome://extensions 就可以打開擴展程序頁面:

帶你開發(fā)一個Chrome版的小程序

勾選上這個頁面左上角的 “開發(fā)者模式”, 然后就會出現(xiàn)上面的幾個按鈕。 點擊 “加載已解壓的擴展程序”, 然后選擇我們剛才創(chuàng)建的文件夾, 這樣就可以看到我們的擴展程序被導入進來了。 這時候 Chrome 瀏覽器的左上角就會出現(xiàn)擴展程序的圖標了,點擊它, 我們的擴展程序就展示出來了:

帶你開發(fā)一個Chrome版的小程序

如果你的擴展程序沒有正確的彈出, 你還可以右鍵點擊它, 然后選擇 “審查彈出內(nèi)容” 來打開調(diào)試界面,能夠非常方便的幫你定位錯誤:

帶你開發(fā)一個Chrome版的小程序

總結(jié)

是不是發(fā)現(xiàn)開發(fā)一個 Chrome 擴展程序其實很簡單呢? 我們這里面只做到了開發(fā),然后在 Chrome 環(huán)境中進行調(diào)試。 一個應用程序如果要建立起正常的生態(tài),還需要提交到應用商店中,后面我還會寫一篇提交商店的文章。 如果你有什么創(chuàng)意或想法也歡迎留言交流。這個小程序的完整的代碼已經(jīng)在 Github 上面開源,希望對你有所幫助:

https://github.com/swiftcafex/chrome-qrcode

責任編輯:未麗燕 來源: Swift Cafe微信公眾號
相關(guān)推薦

2021-04-19 11:16:17

小程序微信開發(fā)

2024-07-29 00:02:00

DemoVue開發(fā)

2019-11-13 15:14:31

MySQL事務數(shù)據(jù)庫

2016-09-27 17:29:23

騰訊云小程序微信

2024-11-01 10:59:38

微信小程序開發(fā)

2011-03-31 11:15:52

網(wǎng)頁設(shè)計Web

2009-05-04 09:11:28

GoogleChrome瀏覽器

2020-03-26 17:00:53

HashMapputJava

2016-09-30 09:22:55

2009-06-01 09:59:57

LinuxChrome開發(fā)

2009-06-02 15:58:34

LinuxChrome開發(fā)

2016-09-21 12:34:10

Chrome瀏覽器插件

2009-09-14 09:36:19

Chrome多功能平臺谷歌

2020-06-23 10:03:33

版本控制項目

2018-01-10 12:09:12

Android開發(fā)程序員

2020-02-22 21:51:43

程序員Microsoft SServerSQL

2021-09-07 07:34:42

CSS 技巧代碼重構(gòu)

2020-02-03 14:45:50

LinuxWeb前端

2021-03-06 07:36:21

小愛同學Windows10應用

2009-06-26 16:07:43

MyEclipse開發(fā)Hibernate程序
點贊
收藏

51CTO技術(shù)棧公眾號

主站蜘蛛池模板: 久青草影院 | 久久免费视频在线 | 中文区中文字幕免费看 | 日韩国产欧美视频 | 国产免费一区二区三区 | 久久国内精品 | 久久久91精品国产一区二区精品 | 一级毛片视频 | 成人午夜免费福利视频 | 亚洲欧洲精品成人久久奇米网 | 久久国产精品免费一区二区三区 | 国产精品99久久久久久人 | 欧美一级淫片免费视频黄 | 在线欧美| 97影院2 | 欧美成人免费 | 精久久久 | 精品视频在线观看 | 日日操夜夜操天天操 | 欧美日韩国产综合在线 | 亚洲国产情侣 | 国产一二三区电影 | 国产激情综合五月久久 | 国产一区 | 久久久成人一区二区免费影院 | 日日碰狠狠躁久久躁婷婷 | 免费国产一区 | 午夜电影网 | 国产精品无码久久久久 | 午夜寂寞福利视频 | 青青草一区 | 在线视频a| av在线播放网址 | 国产精品久久久久久久久久久免费看 | 亚欧洲精品在线视频免费观看 | 91日日| 国产精品99久久久久久动医院 | 国产精品美女一区二区 | 欧美男人的天堂 | 欧美精品福利视频 | 欧美日日日日bbbbb视频 |