ionic 2 error cordova not available

后端 未结 5 1938
Happy的楠姐
Happy的楠姐 2020-12-03 02:57

I am trying to use the cordova GooglePlus plugin in a new ionic 2 project (latest ionic2 version) but I always run into errors regarding cordova. The plugin is properly inst

相关标签:
5条回答
  • 2020-12-03 03:04

    Using ionic serve disables all the cordova plugins, because it is not running on a device.

    Rather use ionic cordova run android This will start an android emulator that should allow all the cordova plugins to function

    I have also come across the second approach, but the syntax then has to be windows['plugins'].googleplus.login(...)

    0 讨论(0)
  • 2020-12-03 03:17

    This error usually occurs when you're running the app in chrome using ionic serve which is normal as in the browser cordova native components are not there but also occur on emulator and devices when an ionic native plugin that you're using was nod added, even if you have added the ionic plugin for it.

    For instance if you are using native Toast

    then you need to add proper ionic dependencies:

    ionic plugin add cordova-plugin-x-toast --save
    

    but you also need to add cordova dependencies:

    cordova plugin add cordova-plugin-x-toast --save
    

    If you forget to add the later cordova plugin you'll get an error like:

    Runtime Error Uncaught(in promise): cordova_not_available
    

    Which can be tricky to find the cause.

    Once you have added ionic and cordova dependencies you should be able to use it.

    Make sure you import it:

    import { Toast } from 'ionic-native';
    

    inject Platform in constructor:

    constructor(public navCtrl: NavController, private platform: Platform) {...
    

    then use the native item:

    this.platform.ready().then(() =>
          Toast.show("Successfull", '5000', 'center')
            .subscribe(
            toast => {
              console.log(toast);
            }
          ));
    
    0 讨论(0)
  • 2020-12-03 03:17

    Sometimes using ionic cordova run browser is not the best option, since it takes a long time for it to compile your changes.

    In my case, what was causing the issue was the FCM plugin. It cannot run on the browser, if I use ionic serve. Since my code was inside app.component.ts, it was easy for me to get around the problem. I simply used the following line:

      if (platform.is('cordova')) 
         {  this.fcmx.onTokenRefresh().subscribe(token => { 
         this.pushNoti.storeNewToken(token); }); }
    

    Using platform.is('cordova'), you can prevent the code causing trouble to run on the browser.

    0 讨论(0)
  • 2020-12-03 03:18

    Simply Run after attaching android device

    ionic cordova run android
    

    make sure you correct google map key

    0 讨论(0)
  • 2020-12-03 03:25

    If you want the plugin to work for the browser you should add platform browser and run it:

    ionic cordova platform add browser
    

    and run it:

    ionic cordova run browser
    

    instead of ionic serve.

    0 讨论(0)
提交回复
热议问题