【问题标题】:Ionic native app rate not working for android离子原生应用程序速率不适用于 android
【发布时间】:2019-02-08 10:20:38
【问题描述】:

我正在构建多个离子应用程序,其他应用程序中的应用程序速率选项完美,但在一个应用程序中它甚至没有显示应用程序速率提示。我的应用评分函数如下所示

    rate(){
    this.appRate.preferences.storeAppURL = {
      // ios: '',
      android: 'market://details?id=app_id',
      // windows: 'ms-windows-store://review/?ProductId=<store_id>'
    };

    this.appRate.promptForRating(true);

    // or, override the whole preferences object
    this.appRate.preferences = {
      usesUntilPrompt: 3,
      storeAppURL: {
        // ios: '<app_id>',
        android: 'market://details?id=app_id',
        // windows: 'ms-windows-store://review/?ProductId=<store_id>'
      }
    };
    this.appRate.promptForRating(false);
  }

而html代码是

<button ion-button color="vibrant" (click)="rate()"><span style="color:#e2c767">Rate App Now</span></button>

【问题讨论】:

  • 如何绕过评分提示?是打开 Playstore 网址吗?

标签: android ionic-framework hybrid-mobile-app mobile-application


【解决方案1】:

您的设备设置为哪种语言?

如果您的设备设置为英语或葡萄牙语以外的任何语言,则该插件当前存在错误。我在这里打开了一个问题并添加了可能的解决方案:https://github.com/pushandplay/cordova-plugin-apprate/issues/218

PS:我假设// or, override the whole preferences object 之后的代码在您测试时已被注释掉。因为否则,你有 2 个 promptForRating 调用在同一个,这是没有意义的。

【讨论】:

  • 语言是英文。
  • 这是您正在运行的确切代码吗?尝试删除您有重复代码的第二部分。并确保您使用正确的链接到您的应用程序,而不是 app_id。也许还添加一个console.log() 以确保您的费率函数实际被调用。
  • 函数被正确调用,id 也是准确的,这是我正在使用的确切代码。
  • 为什么设置this.appRate.preferences,然后调用promptForRating两次?
【解决方案2】:

您需要添加其他配置设置。我犯了你无意中犯的同样的错误。在构造函数中包含以下代码,

appRate.preferences = {
    storeAppURL: {
      ios: '<app_id>',
      android: 'market://details?id=<package_name>',
      windows: 'ms-windows-store://review/?ProductId=<store_id>'
    },
    customLocale: {
      title: 'Do You Enjoy?',
      message: 'Please Rate Us',
      cancelButtonLabel: 'No Thanks',
      laterButtonLabel: 'Remind me later',
      rateButtonLabel: 'Rate It Now',

    },
    callbacks: {
      onRateDialogShow: function (callback) {
        console.log('dfcsd');
      },
      onButtonClicked:function(buttonIndex){
        console.log('Selected Index is '+buttonIndex);
      }
    },
    simpleMode:true
  }

添加完整的配置设置,包括回调和 customLocale,如上面的代码所示。最后,在 rate() 函数中,

 this.appRate.promptForRating(true);

【讨论】:

  • 这是正确答案。虽然我不知道为什么,单独使用 storeAppURL 并不会提示费率弹出窗口,也不会导航到 App Store(我只在 iOS 上测试过)
  • 部分配置会导致应用出现故障并显示白屏。完整配置使应用程序正常运行,但没有向用户提供对应用程序进行评分的选项。可能是什么原因?
猜你喜欢
  • 2018-05-18
  • 1970-01-01
  • 2018-04-27
  • 2016-09-12
  • 1970-01-01
  • 2019-08-10
  • 2015-06-20
  • 1970-01-01
  • 2019-05-14
相关资源
最近更新 更多