Cordova插件Apprate没有定义。

时间:2017-07-10 19:33:16

标签: cordova ionic-framework cordova-plugins

我试图测试我的离子应用程序,但每次我服务它我得到一个空白的屏幕和导航栏。我得到一个看起来像这样的错误我花了无数个小时看但却一无所获。

`Uncaught ReferenceError: AppRate is not defined
    at Object.setPreferences (ng-cordova.min.js:7)
    at Array.<anonymous> (config.js:24)
    at onPlatformReady (ionic.bundle.js:2496)
    at onWindowLoad (ionic.bundle.js:2477)`

        angular.module("ngCordova.plugins.appRate", []).provider("$cordovaAppRate", [function() {
        this.setPreferences = function(e) {
            e && angular.isObject(e) && (AppRate.preferences.useLanguage = e.language || null,
            AppRate.preferences.displayAppName = e.appName || "",
            AppRate.preferences.promptAgainForEachNewVersion = e.promptForNewVersion || !0,
            AppRate.preferences.openStoreInApp = e.openStoreInApp || !1,
            AppRate.preferences.usesUntilPrompt = e.usesUntilPrompt || 3,
            AppRate.preferences.useCustomRateDialog = e.useCustomRateDialog || !1,
            AppRate.preferences.storeAppURL.ios = e.iosURL || null,
            AppRate.preferences.storeAppURL.android = e.androidURL || null,
            AppRate.preferences.storeAppURL.blackberry = e.blackberryURL || null,
            AppRate.preferences.storeAppURL.windows8 = e.windowsURL || null)
        }

这是我每次通过离子CLI为我的应用程序提供的错误。我已经尝试更新插件,但没有什么请帮助。这是我的离子信息:

 global packages:

    @ionic/cli-utils : 1.4.0
    Cordova CLI      : 7.0.1
    Gulp CLI         : not installed globally
    Ionic CLI        : 3.4.0

local packages:

    @ionic/cli-plugin-cordova : 1.4.0
    @ionic/cli-plugin-gulp    : 1.0.1
    @ionic/cli-plugin-ionic1  : 2.0.0
    Cordova Platforms         : android 5.1.1 ios 4.4.0
    Ionic Framework           : ionic1 1.3.1

System:

    Node       : v7.4.0
    OS         : macOS Sierra
    Xcode      : Xcode 8.3.3 Build version 8E3004b
    ios-deploy : 1.9.1
    ios-sim    : 6.0.0
    npm        : 4.0.5

1 个答案:

答案 0 :(得分:1)

确保所有对插件的调用都发生在cordova onDeviceReady事件触发后。 对于Ionic,您应该在$ ionicPlatform.ready()回调中移动代码。

$ionicPlatform.ready(function() { 
  if(window.cordova){
    AppRate.preferences.displayName = "MyApp"
    AppRate.preferences.storeAppURL = {
      ios: '<my_app_id>',
      android: 'market://details?id=my_app_id'
    };
  }
});