HTML5怎么调用手机通讯录

今天面试被问了一个题目,我很懵逼。
怎么调用手机通讯录?我是做网页的,对方说他们做的是webapp。

阅读 16.3k
4 个回答

扯淡呢~HTML5还能放原子弹呢~
HTML5再NB也是HTML 有沙箱机制的

他应该问Hybrid App如何在网页中显示通讯录
这个一般需要通过cordova来获取本地信息,然后和网页js交互实现~r
http://cordova.apache.org/

web API ContactManager,不过,现在只是起草的阶段,还没有正式纳入标准,所以各家的实现可能有区别。其实没什么可以说的,就是几个函数而已。记住记住好了。
FirefoxOS示例代码(显然直接运行在浏览器里面是不行的,手机的也不行!),cordova 不太一样

var request = window.navigator.contacts.getAll();
var count = 0;
request.onsuccess = function () {
  if(this.result) {
    count++;
    // Display the name of the contact
    console.log(this.result.givenName + ' ' + this.result.familyName);
    // Move to the next contact which will call the request.onsuccess with a new result
    this.continue();
  } else {
    console.log(count + 'contacts found.');
  }
}
request.onerror = function () {}

Cordova
https://cordova.apache.org/docs/en/3.0.0/cordova/contacts/contacts.html
FirefoxOS
https://developer.mozilla.org/en-US/docs/Mozilla/Firefox_OS/API/ContactManager
W3c 标准
https://www.w3.org/2012/sysapps/contacts-manager-api/

我猜这道面试本质是想问你WebView中的javascript 如何调用原生API。
如果是项目里的需求,你可以直接用cordova,就是原来的phonegap,经常用来实现混合架构的web APP。Android平台下它的本质是重写了WebChromeClient类的onJsPrompt接口,就是原来浏览器弹出alert模态框的接口。通过这个接口再去调用本地的原生API。
如果利用cordova的话,你应该可以搜到现成的插件,当然也可以自己写,不复杂的。

新手上路,请多包涵

h5目前没有提供这个方法

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题