При использовании библиотеки NFC рекомендуются Ionic docs (https://github.com/chariotsolutions/phonegap-nfc) (https://ionicframework.com/docs/native/nfc)). Я получаю сообщение об ошибке «Плагин не установлен» при попытке получить доступ к коду в моем компоненте, вызывающему ndef илиПоставщики nfc на моем Android One Plus с помощью команды CLI «ionic serve --devapp» также говорят, что devapp не поддерживает этот плагин, но мне неясно, как мне поступить с использованием этого пакета в этом случае. .
После указания версии 4 в соответствии с предложением этого поста для Ionic 3 я получил другую ошибку: это с установленным rxjs-compat, и ни один из кода nfc / ndef фактически не использовался для импорта в модуль икомпонент и внедрение в конструктор.
При этом используется "import {Ndef, NFC} из '@ ionic-native / nfc';" вместо / nfc / ngx, как указано выше.
Uncaught TypeError: Object(...) is not a function
at index.js:405
at Module../node_modules/@ionic-native/nfc/index.js (index.js:599)
at __webpack_require__ (bootstrap:84)
at Module../src/app/app.module.ts (app.component.ts:12)
at __webpack_require__ (bootstrap:84)
at Module../src/main.ts (main.ts:1)
at __webpack_require__ (bootstrap:84)
at Object.0 (main.ts:12)
at __webpack_require__ (bootstrap:84)
at checkDeferredModules (bootstrap:45)
Когда я пытаюсь создать приложение, а не обслуживать его с помощью devapp, я сталкиваюсь с этой (возможно, не связанной) ошибкой, хотя я запускаю приложение в Android Studio под Windows10, и мои переменные Java, Android и Gradle определены в переменных среды.
ANDROID_HOME=C:\Users\Sam\AppData\Local\Android\sdk
JAVA_HOME=C:\Program Files\Java\jdk1.8.0_181
Could not find an installed version of Gradle either in Android Studio,
or on your system to install the gradle wrapper. Please include gradle
in your path, or install Android Studio
Я добавил импорт и провайдера в модуль приложения.
import {Ndef, NFC} from '@ionic-native/nfc';
@NgModule({
...
providers: [
NFC,
Ndef,
StatusBar,
SplashScreen,
{ provide: RouteReuseStrategy, useClass: IonicRouteStrategy }
],
Этокак я внедряю провайдеров в свой класс.
import { Component } from '@angular/core';
import {ToastController} from '@ionic/angular';
import {Ndef, NFC} from '@ionic-native/nfc';
@Component({
selector: 'app-home',
templateUrl: 'home.page.html',
styleUrls: ['home.page.scss'],
})
export class HomePage {
constructor(private nfc: NFC, private ndef: Ndef, private toast: ToastController) {
}
Возможно, я нахожусь на совершенно неверном пути по этому поводу, но следование документации или любой из веток предложений, доступных по аналогичным темам, ни к чему не привели. Я подхожу к этому неправильно?
РЕДАКТИРОВАТЬ: После запуска всего нового проекта и проверки того, что я прошел каждый шаг без каких-либо ошибок, я снова получаю сообщение об ошибке INSTALL PLUGIN ERROR.
[ng] [console.warn]: "Install the NFC plugin: 'ionic cordova plugin add phonegap-nfc'"
[ng] [console.warn]: "Native: tried calling NFC.removeNdefListener, but the NFC plugin is not installed."
[ng] [console.warn]: "Install the NFC plugin: 'ionic cordova plugin add phonegap-nfc'"
[ng] [console.log]: "Angular is running in the development mode. Call enableProdMode() to enable the production mode."
[ng] [console.log]: "calling _sync"
[ng] [console.error]: "ERROR" "plugin_not_installed"
[ng] [console.info]: "[WDS] Live Reloading enabled."
[ng] [console.log]: "calling _reload"
[ng] [console.log]: "done _reloading"
[ng] [console.log]: "Ionic Native: deviceready event fired after 836 ms"
Эта ошибка появляется в моей консоли только тогда, когда я открываю версию приложения для Android в DevApp после подачи ее с serve --devapp. Он не появляется, когда я запускаю его в браузере, а просто выдает ошибку «Cordova», которая недоступна, что я считаю стандартной для плагинов, которые не работают на определенных устройствах. Это делается в соответствии с точным пошаговым процессом, включая код в ионных документах. https://ionicframework.com/docs/native/nfc
EDIT2: Это может быть связано с ошибкой обработки XML. При выполнении тех же шагов, что и раньше, я столкнулся с ошибкой, которую я ранее отклонил при установке плагина, поскольку он разрешался после установки платформ iOS и Android на Cordova. Приведенная ниже ошибка возникает после запуска команды «ionic cordova plugin add phonegap-nfc». Плагин, однако, УСТАНАВЛИВАЕТСЯ, и впоследствии будет указан в списке «Перечень плагинов Cordova», но установка может быть выполнена не совсем корректно. Плагин не указан под плагинами в config.xml, например.
Failed to install 'phonegap-nfc': Error: Unable to graft xml at selector "/manifest/uses-sdk" from "C:\Users\cliem\Desktop\dev\nfctest\nfctest2\platforms\android\app\src\main\AndroidManifest.xml" during config install
at ConfigFile_graft_child [as graft_child] (C:\Users\cliem\Desktop\dev\nfctest\nfctest2\node_modules\cordova-common\src\ConfigChanges\ConfigFile.js:122:19)