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