我按照本文档中的说明安装了Ionic 2的Contacts插件:
https://ionicframework.com/docs/v2/native/contacts/
该引用并未向我们提供有关如何使用该插件的任何解释,也没有关于如何查找和处理错误的示例。
在模拟器中我的应用程序运行正常。它列出了所有联系人。但在实际设备中,它会给我一个空错误,并且没有联系人写入列表。
Contacts.find(['phoneNumbers']).then((phone_contacts) => {
self.contacts = {};
// Some code
}).catch((error) => {
alert('Contacts error: '+JSON.stringify(error));
});
error
对象为空,警告打印{}
。
我通过两种不同的方式安装了应用程序:
1- sudo ionic run android 2-将android-debug.apk复制到downloads文件夹并通过包管理器安装。我授予了所请求的权限。
这两行在我的Manifest.xml中
<uses-sdk android:minSdkVersion="16" android:targetSdkVersion="24" />
<uses-permission android:name="android.permission.READ_CONTACTS" />
任何人都知道如何调试它?或者这可能是什么错误?
@edit
这是Android 4.4.2,KitKat
@edit 2
我将代码放在我home.ts
的构造函数中ready
事件中。
platform.ready().then(() => {
});
答案 0 :(得分:-1)
我有一个类似的错误,在console.log中显示以下消息:
EXCEPTION:Uncaught(在promise中):TypeError:navigator.contacts未定义 往来
这是我的代码:
import { Component } from '@angular/core';
import { Platform } from 'ionic-angular';
import { StatusBar, Splashscreen } from 'ionic-native';
import { Contacts } from 'ionic-native';
import { HomePage } from '../pages/home/home';
@Component({
templateUrl: 'app.html'
})
export class MyApp {
rootPage = HomePage;
constructor(platform: Platform) {
platform.ready().then(() => {
// Okay, so the platform is ready and our plugins are available.
// Here you can do any higher level native things you might need.
StatusBar.styleDefault();
Splashscreen.hide();
Contacts.find(['displayName','name','nickname'], {filter:''})
.then(
cont=>{
console.log(cont[0]);
alert(JSON.stringify(cont[0]));
})
});
}
}