Property 'iOSExternalAccessory' does not exist on type 'CordovaPlugins'

1.9k views Asked by At

I have created a new Ionic 4 menu template app and then I have installed the following plugin with deps. using the CLI command

ionic cordova add https://github.com/stevef51/cordova-ios-external-accessories

However when I try ionic cordova prepare ios, I am presented the following error.

ERROR in src/app/home/home.page.ts:25:39 - error TS2339: Property 'iOSExternalAccessory' does not exist on type 'CordovaPlugins'.

25       var pluginAPI = cordova.plugins.iOSExternalAccessory;
                                     ~~~~~~~~~~~~~~~~~~~~

[ERROR] An error occurred while running subprocess ng.

When I run the command ionic cordova plugin list, I can see it installed

com.virtualmgr.iOSExternalAccessory 1.0.0 "iOSExternalAccessory"
cordova-plugin-ble-central 1.2.2 "BLE"
cordova-plugin-bluetooth-serial 0.4.7 "Bluetooth Serial"
cordova-plugin-bluetoothle 4.5.5 "Bluetooth LE"
cordova-plugin-compat 1.2.0 "Compat"
cordova-plugin-device 2.0.2 "Device"
cordova-plugin-ionic-keyboard 2.1.3 "cordova-plugin-ionic-keyboard"
cordova-plugin-ionic-webview 4.1.1 "cordova-plugin-ionic-webview"
cordova-plugin-splashscreen 5.0.2 "Splashscreen"
cordova-plugin-statusbar 2.4.2 "StatusBar"
cordova-plugin-whitelist 1.3.3 "Whitelist"

The code is dead simple: a click event, if I take it out the BLE code works just fine, however I am forced to use this plugin as the handheld scanner I am using does not support BLE as it does not show up in the list of accessories when I scan for BLE devices.

scanForDevices(){
      var pluginAPI = cordova.plugins.iOSExternalAccessory;
      this.ble.scan([], 5).subscribe(device => {
        console.log(JSON.stringify(device));
      });
    }

I have made contact with the developer of the plugin, he has no Ionic experience, unfortunately.

Any and all advice would be appreciated.

1

There are 1 answers

1
Lindsay On

I have worked it out.

I was missing the declare let cordova: any; at the top of my file.