- 安卓端重要方法簡介:
CloudPushService pushService = PushServiceFactory.getCloudPushService();
pushService.closeDoNotDisturbMode(); //設(shè)置免打擾
pushService.setDoNotDisturb(0, 0, 23, 59, new CommonCallback() {});
pushService.turnOnPushChannel(CommonCallback callback); ---存在2-3小時延遲颈娜。
pushService.turnOffPushChannel(CommonCallback callback); ---存在2-3小時延遲盯仪。
//將設(shè)備deviceId注冊到云推送,即綁定過設(shè)備
pushService.register(applicationContext, new CommonCallback() {});
查詢推送通道狀態(tài):pushService.checkPushChannelStatus(CommonCallback callback);
//通過callback.success(String response)回調(diào)傳入’on’;反之則傳入’off’
- 其他:
- pushService.bindAccount(String account, CommonCallback callback);
一個設(shè)備只能綁定一個賬號,而同一賬號可以綁定到多個設(shè)備;也就是說溶诞,你所推送的消息若是公共的,可以采用按設(shè)備推送,而若是指定發(fā)給某人的辛慰,就要采用安賬號推送了,但是需要注意干像,當(dāng)在app中用戶退出當(dāng)前應(yīng)用后帅腌,再次直接登錄后并不走Application,所以你若是在XxApplication中調(diào)用了bindAccount()麻汰,那么在新用戶登錄后是并未bindAccount()的速客,需要我們在登錄成功后,或在吊起開啟推送方法turnOnPushChannel(V3.03)或pushService.closeDoNotDisturbMode();而且在關(guān)閉狀態(tài)下所有推送的消失不會再次收到五鲫;
- 對于通知開關(guān)的狀態(tài)溺职,可以保存到本地sp中(0,1,"")三種形式位喂,q其中的""表示第一次啟動或數(shù)據(jù)被清理的情況浪耘,當(dāng)為""時需要請求(自己后臺或第三方)獲得當(dāng)前開關(guān)狀態(tài);
- 綁定標(biāo)簽到指定目標(biāo)如: 設(shè)備塑崖、賬號和別名綁定標(biāo)簽七冲,其綁定類型由參數(shù)target指定;
bindTag(int target, String[] tags, String alias, CommonCallback callback);
參數(shù)解析: target(V2.3.5及以上版本) 目標(biāo)類型规婆,CloudPushService.DEVICE_TARGET:本設(shè)備澜躺;CloudPushService.ACCOUNT_TARGET:本賬號; CloudPushService.ALIAS_TARGET:別名
tags 標(biāo)簽(標(biāo)簽數(shù)組)alias 指定綁定的別名(僅當(dāng)target = 3時生效抒蚜,其它兩種情況不用傳掘鄙,但標(biāo)記賬號前需要保證一定綁定了賬號)callback 回調(diào)監(jiān)聽;
- 查詢標(biāo)簽:pushService.listTags(int target, CommonCallback callback); //當(dāng)前僅支持查詢設(shè)備標(biāo)簽嗡髓;
- 添加別名 pushService.addAlias(String alias, CommonCallback callback);
要求:單個設(shè)備最多添加128個別名通铲,且同一別名最多添加到128個設(shè)備;
- 刪除別名: removeAlias(String alias, CommonCallback callback);
- 查詢別名:listAliases(CommonCallback callback);
- 設(shè)置通知聲音:setNotificationSoundFilePath(String filePath);//默認(rèn)獲取資源id為R.raw.alicloud_notification_sound的資源文件
- 設(shè)置通知欄圖標(biāo):setNotificationLargeIcon(Bitmap icon);默認(rèn)獲取R.drawable.alicloud_notification_largeIcon資源文件器贩;其次獲取App啟動圖標(biāo)颅夺。
- 設(shè)置狀態(tài)欄圖標(biāo):setNotificationSmallIcon(int iconId);默認(rèn)獲取R.drawable.alicloud_notification_smallIcon資源,其次獲取App啟動圖標(biāo)蛹稍。
11.刪除所有通知:clearNotifications();若需要實現(xiàn)精準(zhǔn)刪除特定通知可以在onNotification回調(diào)中獲取通知id吧黄,自行刪除;
- 阿里云自帶的消息\通知接收方法:
- 消息接收回調(diào):void onMessage(Context context, CPushMessage message); //消息不會彈窗唆姐,只是回調(diào)該方法拗慨。
- 通知接收回調(diào):void onNotification(Context context, String title, String summary, Map<String, String> extraMap) //可進(jìn)行通知預(yù)先處理操作,如修改、刪除等赵抢;
- 通知打開回調(diào):void onNotificationOpened(Context context, String title, String summary, String extraMap);
- 無跳轉(zhuǎn)邏輯通知打開回調(diào):void onNotificationClickedWithNoAction(Context context, String title, String summary, String extraMap);
- 通知被刪除回調(diào):void onNotificationRemoved(Context context, String messageId);
- 我們自定義通知樣式時剧蹂,并且設(shè)置推送應(yīng)用內(nèi)到達(dá)不創(chuàng)建通知彈窗時調(diào)用該回調(diào),且此時不調(diào)用自帶的onNotification()烦却,而是調(diào)用通知在應(yīng)用內(nèi)到達(dá)回調(diào):
void onNotificationReceivedInApp(Context context, String title, String summary, Map<String, String> extraMap, int openType, String openActivity, String openUrl); //這時需要我們自己定義通知欄樣式宠叼,以及彈窗被點擊后的操作;
值得一提的是: 后臺的消息推送其爵,是通過請求第三方接口冒冬,并設(shè)置了必要的傳遞參數(shù)實現(xiàn)的,然后第三方校驗后會推送消息給所要求的移動端摩渺,移動端接收到消息后简烤,按照第三方的文檔說明,對消息和通知進(jìn)行區(qū)分并處理摇幻;
參考文檔:
方法參考文檔: https://help.aliyun.com/document_detail/30066.html?spm=5176.doc30064.6.643.M8MOWc#h3-1-1-
小米華為添加輔助通道配置:https://help.aliyun.com/document_detail/30067.html?spm=5176.doc30066.6.644.yPpHiI
.