日本熟妇hd丰满老熟妇,中文字幕一区二区三区在线不卡 ,亚洲成片在线观看,免费女同在线一区二区

推送功能更新適配

背景

由于鴻蒙的元能力與窗口組件新增了安全機制(應用退出后臺后,不允許執行 Ability 之間的拉起),因此當前 App 離線狀態下點擊通知欄之后,無法直接跳轉到應用內頁面。具體組件啟動規則,參考鴻蒙組件啟動規則。

說明

此次更新刪除了 mPaaS 中間層,修復了上述問題。

客戶端更新與接入

鴻蒙客戶端基線升級之后,用戶只需直接配置需要跳轉的目標頁面即可。例如,需要點擊通知欄之后跳轉到 PushLandingAbility 頁面,需在 module.json5 文件中進行如下配置。

{
  "name": "PushLandingAbility",
  "srcEntry": "./ets/pushability/PushLandingAbility.ets",
  "description": "$string:EntryAbility_desc",
  "icon": "$media:icon",
  "label": "$string:LandingAbility_label",
  "startWindowIcon": "$media:startIcon",
  "startWindowBackground": "$color:start_window_background",
  "exported": true,
  "skills": [
    {
      "actions": [""],
      "uris": [
        {
          "scheme": "jump",
          "host": "com.mpaas.harmony.push",
          "path": "landing"
        }
      ]
    }
  ]
},
重要

mPaaS 通過消息中的 URI 匹配具體的頁面,actions 需要設置為空(不能缺少該字段)。

在跳轉的目標頁面中,用戶可以使用 mPaaS 提供的工具類 PushMsgHandler 解析消息通知中包含的數據(使用時,需要確保服務端已經升級),具體代碼參考如下:

import { MPPushMsg,PushMsgHandler,msgOutput } from '@mpaas/push';

export class PushLandingAbility extends UIAbility {
  private TAG: string = "PushLandingAbility"

  async onCreate(want: Want, launchParam: AbilityConstant.LaunchParam): Promise<void> {
    super.onCreate(want, launchParam)

    let msg: msgOutput | undefined = PushMsgHandler.parsePushMsg(want)
    let msg_id: string | undefined = msg?.msg_id
    let msg_data: MPPushMsg | undefined = msg?.msg_data
  }
  
  ......
}
  • msg_id 對應消息 ID。

  • msg_data 對應具體的消息數據。

另外, 升級后的 SDK 在 NcAbility 內部做了配置頁面的銷毀動作,因此 開發者需要刪除在配置頁面中 onForeground 階段的 this.context.terminateSelf 代碼,配置示例如下:

export default class MpaasBridgeMsgAbility extends MpaasNcAbility {
  static tag: string = "MpaasBridgeMsgAbility"
  onCreate(want: Want, launchParam: AbilityConstant.LaunchParam): void {
    hilog.info(0x0000, MpaasBridgeMsgAbility.tag, "start MpaasBridgeMsgAbility onCreate")
    super.onCreate(want, launchParam)
  }

  onForeground() {
    console.log('MpaasBridgeMsgAbility onBackground');
  }

}
重要

風險點提示 1:如果升級客戶端組件之后,沒有刪除上述銷毀的代碼,那么跳轉動作會失敗。

風險點提示 2:升級客戶端組件之后,如果沒有升級服務端,保持現有的消息解析方式不變,不要使用 PushMsgHandler 解析消息,否則會解析失敗。

服務端更新內容

服務端通過 pushVersion 字段的值(在客戶端調用初始化上報接口時會上報該字段)來判斷和適配不同版本的鴻蒙推送 SDK,升級前的 pushVersion 字段值為 2.5.0,升級后的 pushVersion 字段值為 3.0.0。

針對 升級前的 SDK,服務端發送的推送消息結構體如下:

{
  "pushOptions": {
    "testMessage": true,
    "biTag": "0#11#1.0.0#c_0_0_8314646940c9f7ceb2e0Grm&49bd2fa97769abdf",
    "collapseKey": -1,
    "ttl": 180
  },
  "payload": {
    "notification": {
      "badge": {
        "addNum": 1
      },
      "notifyId": 1568946632,
      "category": "MARKETING",
      "title": "推送測試-noUrl000",
      "body": "推送測試-noUrl000",
      "clickAction": {
        "actionType": 1,
        "data": {
          "com_harmony_push": {
            "bData": "{\"harmonyos_badge_add_num\":\"1\",\"pushStyle\":0,\"silent\":false,\"notifyType\":\"notify\",\"action\":\"0\",\"id\":\"console_1709535017366\",\"params\":{\"ALIMpsChannel\":\"HARMONYOS\"},\"url\":\"https://www.baidu.com\",\"test_msg\":\"1\"}",
            "k": "c_0_0_8314646940c9f7ceb2e0Grm"
          }
        },
        "action": "com.mpaas.harmony.push",
        "uri": "mpaasscheme://com.mpaas.harmony.push/longlink"
      }
    }
  },
  "target": {
    "token": ["MAMzLgNB-HcFV6YAstOIywAAAGQAAAAAAAHmQeccAFJz604RQSgRll3LPikX2SogGoJtfDDs4lG2Vaz5MwV18jA9UsYKH4oNbTarIDVIjY9SzGrm"]
  }
}

針對 升級后的 SDK,服務端發送的推送消息結構體如下:

{
  "pushOptions": {
    "testMessage": true,
    "biTag": "0#11#1.0.0#c_0_0_8315cb56301994ccb601Grm&104aca1b4f59abd6",
    "collapseKey": -1,
    "ttl": 180
  },
  "payload": {
    "notification": {
      "badge": {
        "addNum": 1
      },
      "notifyId": 1568946632,
      "category": "MARKETING",
      "title": "推送測試-noUrl000",
      "body": "推送測試-noUrl000",
      "clickAction": {
        "actionType": 1,
        "data": {
          "com_harmony_push": {
            "bData": "{\"harmonyos_badge_add_num\":\"1\",\"pushStyle\":0,\"silent\":false,\"notifyType\":\"notify\",\"action\":\"1\",\"id\":\"console_1709535017366\",\"params\":{\"ALIMpsChannel\":\"HARMONYOS\"},\"url\":\"jump://com.mpaas.harmony.push/landing\",\"test_msg\":\"1\"}",
            "k": "c_0_0_8315cb56301994ccb601Grm"
          }
        },
        "action": "",
        "uri": "jump://com.mpaas.harmony.push/landing"
      }
    }
  },
  "target": {
    "token": ["MAMzLgNB-HcFV6YAstOIywAAAGQAAAAAAAHmQeccAFJz604RQSgRll3LPikX2SogGoJtfDDs4lG2Vaz5MwV18jA9UsYKH4oNbTarIDVIjY9SzGrm"]
  }
}

區別

  • 服務端對于升級前的 SDK,URI 傳遞的是一個固定的配置頁面的地址:mpaasscheme://com.mpaas.harmony.push/longlink,客戶端點擊通知欄之后會跳轉到固定的配置頁面(即繼承了 NcAbility 的頁面),然后由該配置頁面去拉起不同的頁面(頁面地址在 bData 里面的 URL 字段)。

  • 服務端對于升級后的 SDK,URI 傳遞的是需要跳轉的頁面的地址:jump://com.mpaas.harmony.push/landing,點擊后由鴻蒙系統直接跳轉。

升級步驟

此次更新涉及到服務端升級與客戶端升級,建議先升級服務端,后升級客戶端。

說明

服務端升級之后,會兼容新舊兩種客戶端版本。

服務端升級版本:1.35.0 及其以上版本

客戶端基線版本:10.2.3.13 及其以上版本基線

鴻蒙基線接入方式可參考文檔:接入 HarmonyOS NEXT

重要

風險點提示:如果先升級客戶端,則 不要刪除原有的配置頁面(繼承 NcAbility 的配置頁面),如果刪除了繼承 NcAbility 的配置頁面,但是沒有升級服務端,那么客戶端將無法處理通知欄的點擊跳轉事件。

升級改動點

此次升級之后,客戶端點擊通知欄之后直接跳轉到消息中包含的 URI 對應的應用內頁面,不經過 NcAbility 頁面中轉,同時提供了數據解析工具,幫助用戶在目標頁面解析消息數據。

重要

風險點提示:鴻蒙 Push Kit 能力暫不支持點擊通知消息直接跳轉到瀏覽器并且打開 HTTP 鏈接,如果服務端推送的消息包含了網頁類型的跳轉地址,升級之后將無法自動打開瀏覽器打開鏈接,需要用戶自行適配此種消息的跳轉。詳情請參考鴻蒙文檔:點擊消息動作。

兼容情況與說明

服務端升級,客戶端不升級

由于升級之后的服務端可以兼容老版本客戶端組件,因此客戶端不升級則維持現有方式。

客戶端升級,服務端不升級

若客戶端升級之后,保持繼承了 NcAbility 的配置頁面存在,那么依然會走原有的跳轉邏輯。