我想从我的Angular应用打开用户联系人页面。我在whatwebcando.today中看到一个示例,我尝试使用openContacts()方法在我的项目上运行它,该方法应在用户单击按钮时运行:
这是stackblitz中的测试项目
openContacts(){
this.supported = ('contacts' in (navigator as any) && 'ContactsManager' in window);
var api = (navigator.contacts || navigator.mozContacts);
if (api && !!api.select) { // new Chrome API
api.select(['name', 'email'], {multiple: true})
.then(function (contacts) {
console.log('Found ' + contacts.length + ' contacts.');
if (contacts.length) {
console.log('First contact: ' + contacts[0].name + ' (' + contacts[0].email + ')');
}
})
.catch(function (err) {
console.log('Fetching contacts failed: ' + err.name);
});
} else if (api && !!api.find) { // old Firefox OS API
var criteria = {
sortBy: 'familyName',
sortOrder: 'ascending'
};
api.find(criteria)
.then(function (contacts) {
console.log('Found ' + contacts.length + ' contacts.');
if (contacts.length) {
console.log('First contact: ' + contacts[0].givenName[0] + ' ' +
contacts[0].familyName[0]);
}
})
.catch(function (err) {
console.log('Fetching contacts failed: ' + err.name);
});
} else {
console.log('Contacts API not supported.');
}}
但它不起作用,并且有两个错误:
当我在我的电话中测试原始的例子它工作得很好,但是当我在我的电话中测试我自己的项目它不工作.有任何方法来解决这问题吗?
感谢是进步。
3条答案
按热度按时间nnt7mjpx1#
我将使用以下替换代码(将
navigator
视为any
类型,而不是Navigator
):7kqas0il2#
得到一些帮助,我终于解决了这个问题。宣言应该是这样的:
xxe27gdn3#
上面的方法对我不起作用,但是创建一个包含以下内容的
global.d.ts
文件确实起了作用: