日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
Chrome86新功能解讀

 文件系統(tǒng)可穩(wěn)定使用

創(chuàng)新互聯(lián)專注于貢嘎網(wǎng)站建設(shè)服務(wù)及定制,我們擁有豐富的企業(yè)做網(wǎng)站經(jīng)驗。 熱誠為您提供貢嘎營銷型網(wǎng)站建設(shè),貢嘎網(wǎng)站制作、貢嘎網(wǎng)頁設(shè)計、貢嘎網(wǎng)站官網(wǎng)定制、成都微信小程序服務(wù),打造貢嘎網(wǎng)絡(luò)公司原創(chuàng)品牌,更為您提供貢嘎網(wǎng)站排名全網(wǎng)營銷落地服務(wù)。

在之前,我們可以使用 元素去磁盤讀取文件,如果要保存更改,需要給標(biāo)簽增加一個download屬性,它會打開文件選擇器,然后保存文件,但是我們沒有辦法寫回剛剛保存的那個文件,這個流程復(fù)雜又繁瑣。

現(xiàn)在,使用文件系統(tǒng)訪問 API,你可以調(diào)用 showOpenFilePicker(),會顯示一個文件選擇器,然后返回一個文件 picker,你可以用這個 picker 讀取文件。 

 
 
 
 
  1. async function getFileHandle() {  
  2.   const opts = {  
  3.     types: [  
  4.       {  
  5.         description: 'Text Files',  
  6.         accept: {  
  7.           'text/plain': ['.txt', '.text'],  
  8.           'text/html': ['.html', '.htm']  
  9.         }  
  10.       }  
  11.     ]  
  12.   };  
  13.   return await window.showOpenFilePicker(opts);  

如果要將文件保存到磁盤,你可以使用之前獲得的 picker ,也可以調(diào)用 showSaveFilePicker() 獲得一個新的 picker: 

 
 
 
 
  1. async function saveFile(fileHandle) {  
  2.   if (!fileHandle) {  
  3.     fileHandle = await window.showSaveFilePicker();  
  4.   }  
  5.   const writable = await fileHandle.createWritable();  
  6.   await writable.write(contents);  
  7.   await writable.close();  

寫入之前, Chrome 會檢查用戶是否已授予寫入權(quán)限,如果未授予寫入權(quán)限,則 Chrome 會首先提示用戶。

調(diào)用 showDirectoryPicker() 將打開一個目錄,你可以獲取文件列表或在該目錄中創(chuàng)建新文件。這非常適合諸如IDE或與大量文件交互的媒體播放器之類的東西。當(dāng)然,在你寫入內(nèi)容之前,用戶必須授予寫入權(quán)限。

試用:WebHID

人機(jī)接口設(shè)備(Human interface devices)通常被稱為 HID,它們從人那里獲取輸入或者向人提供輸出。

現(xiàn)在我們可以通過一些 JavaScript API 來訪問這些設(shè)備,借助 WebHID API 我們可以充分利用游戲手柄,包括所有按鈕,操縱桿,傳感器,觸發(fā)器,LED等。 

 
 
 
 
  1. butOpenHID.addEventListener('click', async (e) => {  
  2.   const deviceFilter = { vendorId: 0x0fd9 };  
  3.   const opts = { filters: [deviceFilter] };  
  4.   const devices = await navigator.hid.requestDevice(opts);  
  5.   myDevice = devices[0];  
  6.   await myDevice.open();  
  7.   myDevice.addEventListener('inputreport', handleInpRpt);  
  8. }); 

基于網(wǎng)絡(luò)的視頻聊天應(yīng)用,可以使用專用揚(yáng)聲器中的電話按鈕來開始或結(jié)束通話、靜音等。

當(dāng)然,像這樣強(qiáng)大的 API,只能在用戶允許的前提下使用。

試用:多屏放置 API

現(xiàn)在,我們可以用 window.screen() 來獲取一些屏幕的屬性: 

 
 
 
 
  1. const screen = window.screen;  
  2. console.log(screen);  
  3. // {  
  4. //   availHeight: 1612,  
  5. //   availLeft: 0,  
  6. //   availTop: 23,  
  7. //   availWidth: 3008,  
  8. //   colorDepth: 24,  
  9. //   orientation: {...},  
  10. //   pixelDepth: 24,  
  11. //   width: 3008  
  12. // } 

但是如果你有多個顯示器怎么辦?抱歉,它只會告訴你當(dāng)前屏幕的屬性。

Multi-Screen Window Placement API 在 Chrome 86 版本開始試用,它可以枚舉所有當(dāng)前計算機(jī)連接的屏幕,并且支持在指定窗口放置屏幕。在使用之前,要向用戶申請權(quán)限。 

 
 
 
 
  1. async function getPermission() {  
  2.   const opt = { name: 'window-placement' };  
  3.   try {  
  4.     const perm = await navigator.permissions.query(opt); 
  5.     return perm.state === 'granted';  
  6.   } catch {  
  7.     return false;  
  8.   }  

用戶授予權(quán)限后,調(diào)用 window.getScreens() 將返回一個使用 Screen 對象數(shù)組解析的 promise 。 

 
 
 
 
  1. const screens = await window.getScreens();  
  2. console.log(screens);  
  3. // [  
  4. //   {id: 0, internal: false, primary: true, left: 0, ...},  
  5. //   {id: 1, internal: true, primary: false, left: 3008, ...},  
  6. // ]  

當(dāng)前名稱:Chrome86新功能解讀
轉(zhuǎn)載來于:
http://www.5511xx.com/article/ccdcdjh.html