首页 > HTML5怎么调用手机通讯录

HTML5怎么调用手机通讯录

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


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的话,你应该可以搜到现成的插件,当然也可以自己写,不复杂的。


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

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

【热门文章】
【热门文章】