App Clip开启通知

对比微信小程序,App Clip可以接受通知消息,这个功能对于我们App Clip也很重要,系统允许App Clip在每次启动后最多8个小时之内,可以接受通知消息。

临时接受通知

要使App Clip在每次启动后最多8小时内接收通知,请首先将NSAppClip key添加到App Clip的info.plist文件中,并将其类型设置为Dictionary。然后,将NSAppClipRequestEphemeralUserNotification key添加到NSAppClip字典中,将其类型设置为Boolean,将其值设置为true。

19.png

将NSAppClipRequestEphemeralUserNotification添加到App Clip的info.plist之后,调用app clip时显示的app clip card包含一个附加说明,告诉用户app clip可以开启通知。默认情况下启用此权限,但用户可以通过点击app clip card上的提示来禁用它。


20.png

因为用户可以禁用app clip card中的通知,所以在App Clip需要添加代码检查是否开启了通知的权限。检查示例代码如下:

let center = UNUserNotificationCenter.current()
center.getNotificationSettings { (settings) in {
    if settings.authorizationStatus == .ephemeral {

        // The user didn't disable notifications in the app clip card.
        // Add code for scheduling or receiving notifications here.
        return
    }
}

申请给App Clip时长权限

如果App Clip需要一天以上的通知功能,需要明确请求用户发送通知的权限。例如,汽车租赁公司的App Clip提醒用户何时需要归还租用的汽车,可以请求允许接收通知。但是请慎重考虑此功能,因为用户可以拒绝接受通知消息。

设置你的通知信息

你可以为多个企业创建一个App Clip。例如,你可能是餐厅平台的提供商,你可以为许多不同业务的餐厅提供一个App Clip,如果用户在短时间内启动了这个App Clip为了这些餐厅,则其设备上可能存在多个app clip实例。
在这种情况下,当收到通知时,系统需要将通知匹配app clip实例。因此,系统要求App Clip通知信息中包含一个URL作为目标内容id。示例代码如下:

{
    "aps" : {
        "alert" : {
            "title" : "Order Status",
            "subtitle" : "Restaurant A",
            "body" : "Your order is ready."
        },
        "category" : "order_status",
        "target-content-id" : "https://example.com/restaurants/restaurant_a/order/1234"
    }
} 

target-content-id的值必须是对应高级App Clip体验匹配的URL。对于刚才的餐厅例子,你将在App Store Connect中注册以下两个URL:

  • https://example.com/restaurants/restaurant_a
  • https://example.com/restaurants/restaurant_b
    启动App Clip的URL和target-content-id的URL可以是:
  • example.com/restaurants/restaurant_a/order/1234
  • https://example.com/restaurants/restaurant_b/order/5678

苹果推荐给App Clip发通知时使用target-content-id。如果是App Clip本地通知,可以使用内容id可以使用targetContentIdentifier

你可能感兴趣的:(App Clip开启通知)