使用JavaScript讀取手機(jī)聯(lián)系人列表
當(dāng)前位置:點(diǎn)晴教程→知識(shí)管理交流
→『 技術(shù)文檔交流 』
在以前使用JavaScript從手機(jī)訪問聯(lián)系人數(shù)據(jù)是不可想象的?,F(xiàn)在有了聯(lián)系人選擇器API,我們可以使用JavaScript來實(shí)現(xiàn)這個(gè)功能。 此功能在需要聯(lián)系人信息(如電話號(hào)碼或VoIP)的應(yīng)用程序,通過這個(gè)功能我們可以在社交平臺(tái)中發(fā)現(xiàn)通訊錄中的好友(前提需要社交平臺(tái)有對(duì)應(yīng)的手機(jī)號(hào)碼字段),或者需要填寫聯(lián)系人表單信息時(shí)則無需切換應(yīng)用程序即可獲取到相應(yīng)的數(shù)據(jù)。 API和設(shè)備將限制可用的屬性。開發(fā)者可以選擇以下五個(gè)標(biāo)準(zhǔn)屬性:
以上返回的都是數(shù)組形式,因?yàn)槁?lián)系人可以有多個(gè)電話、電子郵件或多個(gè)地址。為了保持一致性,即使它是單個(gè)值,返回的數(shù)據(jù)始終是一個(gè)數(shù)組。 隱私和安全存儲(chǔ)在手機(jī)上的聯(lián)系人信息可能包含敏感信息,我們必須小心處理。我們需要必須考慮到隱私和安全問題:
當(dāng)他們第一次使用使用聯(lián)系人選擇器API的網(wǎng)站時(shí),他們可能會(huì)收到這樣的提示: 手機(jī)會(huì)在每次使用聯(lián)系人選擇器API代碼時(shí)顯示這個(gè)彈出窗口,直到用戶點(diǎn)擊“允許”。聯(lián)系人選擇器API在未允許之前不會(huì)運(yùn)行。這個(gè)一次性的,授權(quán)之后不會(huì)再彈出。 API和代碼聯(lián)系人選擇器API只定義了兩個(gè)方法:
兩種方法都返回 如前面隱私和安全部分所述,在調(diào)用API之前需要用戶操作,因此如果沒有用戶交互,我們就無法觸發(fā)任何內(nèi)容,因此我們新增一個(gè)按鈕: <button onclick="getContactData()">Show contact data</button> 主要的代碼將在
接下來是核心的按鈕邏輯:
一旦按鈕觸發(fā)了這個(gè)功能,如果瀏覽器有權(quán)限,聯(lián)系人選擇頁將會(huì)顯示出來,展示基本信息:閱讀數(shù)據(jù)的URL,它將返回什么數(shù)據(jù),以及要從中挑選的聯(lián)系人列表。 關(guān)閉彈窗后, 這是選擇了聯(lián)系人后的結(jié)果示例: [ { "address": [], "email": [ "alvarosemail@gmail.com" ], "icon": [], "name": [ "Alvaro Montoro" ], "tel": [ "555-555-5555", "555-123-4567" ] } ] 如果數(shù)據(jù)包含圖標(biāo),則它將是帶有圖像的 選擇多個(gè)聯(lián)系人可以選擇多個(gè)聯(lián)系人。我們需要向 const props = ["tel", "address", "icon", "name", "email"]; const options = { multiple: true }; const contacts = await navigator.contacts.select(props, options); 結(jié)果是一個(gè)聯(lián)系人數(shù)組,和上面的示例返回結(jié)果是一樣的。 總結(jié)聯(lián)系信息是個(gè)人身份信息,我們必須以敏感數(shù)據(jù)所需的所有謹(jǐn)慎和安全性來處理它。
假設(shè)一個(gè)Web應(yīng)用程序試圖在選擇電話號(hào)碼時(shí)讀取地址、姓名或電子郵件。如果這種情況發(fā)生在我身上,我會(huì)拒絕授權(quán)并離開這個(gè)網(wǎng)站。
該文章在 2024/9/2 10:47:46 編輯過 |
關(guān)鍵字查詢
相關(guān)文章
正在查詢... |