添加订阅按钮

博客介绍闪购增加推送通知的实现思路,包括在闪购频道页添加推送按钮,处理点击订阅和取消订阅的不同情况,涉及权限判断等。还提及两个接口,用于检查订阅状态和保存用户选择。最后给出保存订阅状态的代码及点击订阅时的状态判断逻辑。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

闪购增加推送通知

我的思路:

在闪购频道页添加推送按钮,默认为不订阅

点击订阅有两种情况:

1、用户没有打开权限,点击订阅弹出打开权限通知弹窗 若用户不打开权限 则状态不改变

2、用户已经打开了通知权限,点击订阅,状态改变并弹出toast

取消订阅:用户点击取消订阅,弹出选择窗口,keep remind则保持订阅状态,close remind则改变状态为未订阅

两个接口:

1、检查用户是否订阅:result==true 订阅 result==false 未订阅

2、保存用户的选择状态

代码实现:

保存订阅状态

当remindStatus==1时为订阅状态 remindStatus==0时为未订阅状态

当remindStatus==1并且接口返回true时订阅成功 否则订阅失败

isSubscribe = remindStatus == 1 && result as? Boolean ?: false (订阅失败)

用这个变量去判断订阅后的状态

if (remindStatus == 1) {

    if (result == true) {

        //订阅成功

        ivStatus?.setImageDrawable(

            ContextCompat.getDrawable(

                this@FlashSaleActivity,

                R.mipmap.ic_subscribed_flash_push

            )

        )

        tvsubsrcption?.setText(R.string.subscribed)

        Toast.makeText(

            this@FlashSaleActivity,

            R.string.Subscribed_a_flash_sales_reminder_will_be_sent,

            Toast.LENGTH_LONG

        ).show()

    } else {

    if (result == true) {

        //取消订阅成功

        ivStatus?.setImageDrawable(

            ContextCompat.getDrawable(

                this@FlashSaleActivity,

                R.mipmap.ic_add_flash_push

            )

        )

        tvsubsrcption?.setText(R.string.Subscription)

    }

}

点击订阅:

当isSubscribe==true时,判断权限,权限为开订阅成功,否则为默认状态

当isSubscribe==false时,取消订阅

if (!isSubscribe) {

    if (!AppUtil.isNotificationEnable(this)) {

        val dialog = NotificationPermissionDialog(this)

        dialog.setListener {

            isClickOpenNotification = true

        }

        dialog.setCancelable(false)

        dialog.setCanceledOnTouchOutside(false)

        dialog.show()

    } else {

        requestPust(1)

    }

} else {

    EzDialog(this).show {

        title(R.string.Close_Reminder)

        message(R.string.turning_off_flash_sales_reminder_may_miss_the_discount)

        positiveButton(R.string.Keep_Reminder, click = {})

        negativeButton(R.string.Close_Reminder, click = {

            //开---关

            requestPust(0)

            ReportUtils.sendReportEvent(

                ReportUtils.createRemindOffTOON("remind_me_switch_otf"),

                "click"

            )

        })

        cancelable(false)

    }

}

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值