我正在尝试获取离子3中的来电号码。我正在用https://www.npmjs.com/package/cozzbie.plugin.phonecalltrap来做这件事。它很好地检测到电话状态,但没有返回传入的电话号码。
我在用下面的代码,
declare var PhoneCallTrap:any;
if (PhoneCallTrap)
{
PhoneCallTrap.onCall(function(obj) {
var callObj = JSON.parse(obj),
state = callObj.state,
callingNumber = callObj.incomingNumber;
switch (state) {
case "RINGING":
console.log("Phone is ringing =" + callingNumber);
break;
case "OFFHOOK":
console.log("Phone is off-hook");
break;
case "IDLE":
console.log("Phone is idle");
break;
}
});
} 有没有其他的想法或插件来检索电话号码?
发布于 2019-04-30 09:10:07
您正在使用正确的插件,您的代码是好的,但您只需要添加正确的android权限,从移动访问数据。为此,请遵循以下代码。
将这个插件添加到您的项目中:
打开app.module.ts文件,添加如下:
import { AndroidPermissions } from '@ionic-native/android-permissions/ngx';
providers: [ AndroidPermissions ],打开homePage.ts文件导入AndroidPermissions并添加以下代码:
import { AndroidPermissions } from '@ionic-native/android-permissions/ngx';
declare var PhoneCallTrap: any;
constructor(public androidPermissions: AndroidPermissions){
this.checkPermissionCall();
this.checkPermissionREAD_CONTACTS();
}
//READ_PHONE_STATE
checkPermissionCall() {
this.androidPermissions.checkPermission(this.androidPermissions.PERMISSION.READ_PHONE_STATE).then(
success => {
//if permission granted
this.phonecalls();
},
err => {
this.androidPermissions.requestPermission(this.androidPermissions.PERMISSION.READ_PHONE_STATE).
then(success => {
this.phonecalls();
},
err => {
console.log("cancelled")
});
});
this.androidPermissions.requestPermissions([this.androidPermissions.PERMISSION.READ_PHONE_STATE]);
}
//READ_PHONE_STATE
checkPermissionREAD_CONTACTS() {
this.androidPermissions.checkPermission(this.androidPermissions.PERMISSION.READ_CONTACTS).then(
success => {
//if permission granted
},
err => {
this.androidPermissions.requestPermission(this.androidPermissions.PERMISSION.READ_CONTACTS).
then(success => {
},
err => {
console.log("cancelled")
});
});
this.androidPermissions.requestPermissions([this.androidPermissions.PERMISSION.READ_CONTACTS]);
}
//phone calls
phonecalls() {
PhoneCallTrap.onCall(function (obj) {
var callObj = JSON.parse(obj),
state = callObj.state,
callingNumber = callObj.incomingNumber;
switch (state) {
case "RINGING":
console.log("Phone is ringing", callingNumber);
break;
case "OFFHOOK":
console.log("Phone is off-hook");
break;
case "IDLE":
console.log("Phone is idle");
break;
}
});
}我试着像你一样,但我不能得到数字,但经过艰苦的工作和搜索,我得到了这个,用这个,你将得到号码和状态。
希望它能帮助你:)
https://stackoverflow.com/questions/50099660
复制相似问题