将AndroidPermissions插件添加到ion项目并得到一个错误



我想将AndroidPermissions和UniqueDeviceID插件添加到我的项目中。但是当我运行该项目时,出现以下错误。

Uncaught (in promise): TypeError: Object(...) is not a function
TypeError: Object(...) is not a function
    at AndroidPermissions.checkPermission (index.js:182)

这是我项目的详细信息:

Angular CLI: 8.3.19
Node: 12.13.0
OS: win32 x64
Angular: 5.2.11
... animations, common, compiler, core, forms, http
... platform-browser, platform-browser-dynamic
@angular-devkit/architect 0.803.19
@angular-devkit/build-optimizer 0.0.35
@angular-devkit/core 8.3.19
@angular-devkit/schematics 8.3.19
@angular/cli 8.3.19
@angular/compiler-cli 8.2.14
@schematics/angular 8.3.19
@schematics/update 0.803.19
rxjs 5.5.11
typescript 2.6.2
webpack 3.12.0

C:\projeler\ohsmobile>ionic -v 5.4.6

如果没有更多信息,很难知道如何回答这个问题,但您可以检查一些一般内容。

  1. 您如何"运行"项目?由于您使用的是 Ionic Native 插件,因此在模拟器或真实设备上进行测试非常重要。这意味着 ionic cordova build android并在Android Studio或ionic cordova run android中打开,用于连接USB的真实设备。

  2. 检查您是否在 app.module.ts 或您尝试使用它的页面的 module.ts 中包含 AndroidPermissions 和 UniqueDeviceID 作为提供程序。例:

@NgModule({
    imports: [
        CommonModule,
        FormsModule,
        IonicModule,
        RouterModule.forChild(routes)
    ],
    providers: [AndroidPermissions, UniqueDeviceID],
    declarations: []
})
  1. 确保您已从 Ionic 文档中运行以下命令:
ionic cordova plugin add cordova-plugin-uniquedeviceid
npm install @ionic-native/unique-device-id
ionic cordova plugin add cordova-plugin-android-permissions
npm install @ionic-native/android-permissions
  1. 确保从正确的位置导入:
import { AndroidPermissions } from '@ionic-native/android-permissions/ngx'
import { UniqueDeviceID } from '@ionic-native/unique-device-id/ngx'
    来自
  1. Ionic 文档的用法:
import { AndroidPermissions } from '@ionic-native/android-permissions/ngx';

constructor(private androidPermissions: AndroidPermissions) { }
...
this.androidPermissions.checkPermission(this.androidPermissions.PERMISSION.CAMERA).then(
  result => console.log('Has permission?', result.hasPermission),
  err => this.androidPermissions.requestPermission(this.androidPermissions.PERMISSION.CAMERA)
);
this.androidPermissions.requestPermissions([this.androidPermissions.PERMISSION.CAMERA, this.androidPermissions.PERMISSION.GET_ACCOUNTS]);

相关内容

最新更新