今天面试被问了一个题目,我很懵逼。
怎么调用手机通讯录?我是做网页的,对方说他们做的是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的话,你应该可以搜到现成的插件,当然也可以自己写,不复杂的。
3 回答1.4k 阅读✓ 已解决
2 回答2.5k 阅读✓ 已解决
3 回答1.1k 阅读✓ 已解决
2 回答1.3k 阅读✓ 已解决
5 回答1.8k 阅读
2 回答1.3k 阅读✓ 已解决
1 回答2.7k 阅读
扯淡呢~HTML5还能放原子弹呢~
HTML5再NB也是HTML 有沙箱机制的
他应该问Hybrid App如何在网页中显示通讯录
这个一般需要通过cordova来获取本地信息,然后和网页js交互实现~r
http://cordova.apache.org/