递归火山软件开发平台

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
热搜: 火山 源码 类库
查看: 1435|回复: 1
打印 上一主题 下一主题

[安卓] 引导 用户前往应用市场评分 开源

[复制链接]

109

主题

460

帖子

2467

积分

金牌会员

Rank: 6Rank: 6

积分
2467
跳转到指定楼层
楼主
发表于 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;

    }

    #
}

回复

使用道具 举报

144

主题

1238

帖子

5744

积分

贵宾

Rank: 9Rank: 9Rank: 9

积分
5744
QQ
沙发
发表于 2024-8-9 15:10:12 | 只看该作者
支持
火山视窗封装视频教程
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|小黑屋|递归火山软件开发平台 ( 鄂ICP备18029190号 )

GMT+8, 2024-11-23 06:16 , Processed in 0.084159 second(s), 22 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表