何时显示Rate My App对话框?

时间:2017-12-03 09:57:44

标签: android

我刚刚在Google Play商店发布了我的应用。我现在没有为我的应用添加任何费率。我的问题是那些在Playstore上有应用程序的人,当你确切地显示"评价我的应用程序时#34;信息?是2天吗?你要展示的标准是什么?就像用户继续使用应用程序一样?或者他们在给定的会话中使用该应用程序多长时间?

1 个答案:

答案 0 :(得分:2)

您需要执行代码以显示“评价我”弹出窗口。你告诉的各种条件绝对正确。

此代码为:

我编写的类提供了三个按钮,并配置对话框,使其仅在应用程序启动ntimes后显示(如果用户之前使用过该应用程序,则用户有更高的评级应用程序的机会。他们甚至不太可能知道它在第一次运行时做了什么):

 public class AppRater 
 { 
      private final static String APP_TITLE = "App Name";
      // App Name 
      private final static String APP_PNAME = "com.example.name";
      // Package Name 
      private final static int DAYS_UNTIL_PROMPT = 3;
      //Min number of days 
      private final static int LAUNCHES_UNTIL_PROMPT = 3;
      //Min number of launches 
      public static void app_launched(Context mContext) 
      { 
           SharedPreferences prefs = mContext.getSharedPreferences("apprater", 0); 
           if (prefs.getBoolean("dontshowagain", false))
           { 
                return ; 
           } 
           SharedPreferences.Editor editor = prefs.edit(); 
           // Increment launch counter 
           long launch_count = prefs.getLong("launch_count", 0) + 1; 
           editor.putLong("launch_count", launch_count); 
           // Get date of first launch 
           Long date_firstLaunch = prefs.getLong("date_firstlaunch", 0); 
           if (date_firstLaunch == 0) 
           { 
                date_firstLaunch = System.currentTimeMillis(); 
                editor.putLong("date_firstlaunch", date_firstLaunch); 
           } 
           // Wait at least n days before opening 
           if (launch_count >= LAUNCHES_UNTIL_PROMPT) 
           { 
                if (System.currentTimeMillis() >= date_firstLaunch + (DAYS_UNTIL_PROMPT * 24 * 60 * 60 * 1000)) 
                { 
                      showRateDialog(mContext, editor); 
                } 
           } 
           editor.commit(); 
      } 
      public static void showRateDialog(final Context mContext, final SharedPreferences.Editor editor) 
     { 
           final Dialog dialog = new Dialog(mContext); 
           dialog.setTitle("Rate " + APP_TITLE); 
           LinearLayout ll = new LinearLayout(mContext); 
           ll.setOrientation(LinearLayout.VERTICAL); 
           TextView tv = new TextView(mContext); 
          tv.setText("If you enjoy using " + APP_TITLE + ", please take a moment to rate it. Thanks for your support!"); 
           tv.setWidth(240); 
           tv.setPadding(4, 0, 4, 10); 
           ll.addView(tv); 
           Button b1 = new Button(mContext); 
           b1.setText("Rate " + APP_TITLE); 
           b1.setOnClickListener(new OnClickListener() 
           { 
                  public void onClick(View v) 
                  { 
                         mContext.startActivity(new Intent(Intent.ACTION_VIEW, Uri.parse("market://details?id=" + APP_PNAME))); 
                              dialog.dismiss(); 
                  } 
           }); 
           ll.addView(b1); 
           Button b2 = new Button(mContext);      
           b2.setText("Remind me later"); 
           b2.setOnClickListener(new OnClickListener() 
           { 
                public void onClick(View v) 
                { 
                       dialog.dismiss(); 
                 } 
           });
           ll.addView(b2); 
           Button b3 = new Button(mContext); 
           b3.setText("No, thanks"); 
           b3.setOnClickListener(new OnClickListener()
           { 
                 public void onClick(View v) 
                 {
                      if (editor != null) 
                      { 
                      editor.putBoolean("dontshowagain", true);    editor.commit(); 
                      } 
                     dialog.dismiss();
                } 
           }); 
           ll.addView(b3); 
          dialog.setContentView(ll); 
          dialog.show(); 
     } 
}

集成类就像添加:

一样简单
 AppRater.app_launched(this);

致你的活动。它只需要添加到整个应用程序中的一个Activity。