【发布时间】:2014-07-27 10:14:48
【问题描述】:
网站(HTML5、JavaScript)能否访问移动设备的(Android/iPhone)
联系人列表,SDCard 文件?
一个在浏览器中打开的网站,而不是 phonegap 应用程序/webapp。
【问题讨论】:
-
请参考此链接获取联系人
标签: javascript android ios iphone html
网站(HTML5、JavaScript)能否访问移动设备的(Android/iPhone)
联系人列表,SDCard 文件?
一个在浏览器中打开的网站,而不是 phonegap 应用程序/webapp。
【问题讨论】:
标签: javascript android ios iphone html
您无法通过网站访问移动设备文件系统,这将是一个重大的安全问题。如果您可以通过浏览器访问它们,您可能能够窃取所有用户文件。希望这会有所帮助。
【讨论】:
Chrome 已经在 Chrome 80 中发布了他们自己的“联系人选择器”HTML5 API 版本:https://web.dev/contact-picker。
仅限 Chrome:它不是 W3C 标准,也不是 W3C 标准轨道。
selectRecipientsButton.addEventListener('click', async () => {
const contacts = await navigator.contacts.select(['name', 'email'], {multiple: true});
if (!contacts.length) {
// No contacts were selected in the picker.
return;
}
// Use the names and e-mail addresses in |contacts| to populate the
// recipients field in the website’s UI.
populateRecipients(contacts);
});
【讨论】:
https://developers.google.com/people/
您无法通过存储在手机上的网站访问联系人,但您可以使用 People API 在服务器端进行访问。如果用户将所有内容都存储在云上 - 你赢了。也许这是在您的网站上提供类似原生体验的唯一方法
【讨论】:
我不太确定这个问题的作者是否仍然对解决方案感兴趣,但我在我的应用程序中使用它,它确实是从 html5 应用程序访问本机 api 的一种方便方式。 http://bridgeit.mobi/bridgeit.html#features
BridgeIt 使任何 Web 应用程序都可以使用简单的 JavaScript API 访问各种移动设备功能。
使用这个工具就像 1、2、3…一样简单
在您的页面中包含 BridgeIt JavaScript
<script type="text/javascript" src="http://api.bridgeit.mobi/bridgeit/bridgeit.js"></script>
将 BridgeIt 调用附加到页面上的某个操作元素,并提供回调来处理从 BridgeIt 返回的值。例如,从通讯录中检索联系人的按钮...
bridgeit.fetchContact('element_ID', callback_Function);
从您的移动浏览器访问该页面。如果尚未安装 BridgeIt 实用程序应用程序,系统将提示您安装。安装 BridgeIt 实用程序后,您的应用程序就可以访问所有 BridgeIt 的原生功能。
示例代码可以在这里找到https://github.com/bridgeit/bridgeit.js/wiki/Contact-List-Tutorial
【讨论】:
使用纯 HTML
<input type="file">
您可以从移动设备访问文件,但您无法访问联系人。
【讨论】:
W3C 曾尝试创建浏览器 API 以从浏览器访问联系人。 这通常被称为新的 HTML5 API 之一。
但是,这种尝试从未成为真正的规范,也从未被任何浏览器供应商实施。现在正式停产:
【讨论】:
目前无法通过简单的网站从 Android、iOS 和 Windows Phone 访问内部 API。这也使您无法访问联系人列表等方面,因为这些都只能通过 API 调用访问。
允许您使用 JavaScript 或 HTML5 编写电话应用程序或 Web 应用程序并仍然授予对 API 的访问权限的解决方案是通过使用带有回调本机代码的包装器来实现的。但是您不能从网站等外部来源调用本机代码。
【讨论】: