ゞ情非得已Sky 发表于 2024-8-9 13:46:54

引导 用户前往应用市场评分 开源

本帖最后由 ゞ情非得已Sky 于 2024-8-9 13:49 编辑




<火山程序 类型 = "通常" 版本 = 1 />

类 应用评分 <公开 折叠 @java.导入 = "android.content.Context\nandroid.content.SharedPreferences">
{

    # @begin
    #   // 应用的包名
    #   // 用于存储评分信息的SharedPreferences的名称
    # @ private static final String PREFS_NAME = "rating_prefs";
    #   // 用于存储是否已评分的键值
    # @ private static final String RATING_KEY = "has_rated";
    # @ private SharedPreferences sharedPreferences;
    # @ private Context context;
    # @end

    变量 应用包名 <类型 = 文本型>

    方法 初始化 <公开 折叠>
    参数 欲窗口 <类型 = 安卓窗口>
    参数 包名 <类型 = 文本型 注释 = "你的应用包名">
    {
      应用包名 = 包名
      @ this.context = @<欲窗口>;
      // 获取SharedPreferences实例
      @ sharedPreferences = @<欲窗口>.getSharedPreferences(PREFS_NAME, Context.MODE_PRIVATE);
    }

    方法 是否已经评分 <公开 类型 = 逻辑型 折叠 @禁止流程检查 = 真>
    {
      // 从SharedPreferences中获取"has_rated"的值,如果不存在则返回false
      @ return sharedPreferences.getBoolean(RATING_KEY, false);
    }

    方法 标记已评分 <折叠>
    {
      // 获取SharedPreferences的编辑器
      @ SharedPreferences.Editor editor = sharedPreferences.edit();
      // 将"has_rated"设置为true,表示用户已评分
      @ editor.putBoolean(RATING_KEY, true);
      // 提交修改
      @ editor.apply();
    }

    方法 获取评分 <类型 = 单精度小数 注释 = " 获取应用在应用市场的评分" 返回值注释 = "返回已评分数" 折叠 折叠2 @禁止流程检查 = 真
            @java.导入 = "android.content.pm.PackageManager\nandroid.content.pm.PackageInfo">
    {
      @ try {
      // 获取应用的包信息
      @ PackageInfo packageInfo = context.getPackageManager().getPackageInfo(@<应用包名>, 0);
      // 获取应用在应用市场的评分信息
      @ return packageInfo.versionCode;
      @ } catch (PackageManager.NameNotFoundException e) {
      // 如果获取应用信息失败,则返回-1
      @ return -1;
      @ }
    }

    方法 引导检测评分 <公开 类型 = 逻辑型 注释 = "未评分引导用户前往评分" 折叠 折叠2 @禁止流程检查 = 真
            @java.导入 = "android.net.Uri\nandroid.content.Intent">
    {
      // 检查用户是否已评分
      变量 状态 <类型 = 逻辑型>
      如果真 (删除首尾空白 (应用包名) == "")
      {
            返回 (假)
      }
      状态 = 是否已经评分 ()
      @ if (!@<状态>) {
      // 获取应用在应用市场的评分
      变量 评分 <类型 = 单精度小数>
      评分 = 获取评分 ()
      @ float rating = @<评分>;
      // 如果评分信息存在,则引导用户进行评分
      @ if (rating >= 0) {
      // 构建跳转到应用市场的 URI
      @ Uri uri = Uri.parse("market://details?id=" + @<应用包名>);
      // 启动 URI 跳转,引导用户进行评分
      @ context.startActivity(Intent.createChooser(new Intent(Intent.ACTION_VIEW, uri), "Rate our app"));
      // 设置用户已评分的标记
      标记已评分 ()
      @ return true;
      @ }
      @ }
      // 如果用户已评分或获取评分信息失败,则返回false
      @ return false;

    }

    #
}

沉默流星 发表于 2024-8-9 15:10:12

支持
页: [1]
查看完整版本: 引导 用户前往应用市场评分 开源