notification — iOS上的通知
notification
模块允许您安排iOS通知中心中显示的通知消息。即使您的脚本(甚至整个应用程序)不再运行,也会发送计划的通知。
也可以将URL附加到通知中。激活通知后(即在通知中心或锁定屏幕中点击),URL将启动。通知还可以包含启动不同URL的多个按钮。
通常,通知计划在将来的某个日期/时间进行,但是您也可以计划基于位置的通知,这些通知在您输入或离开指定地理位置(例如家庭/工作地点)时触发。
您可以使用此模块安排的所有通知都是本地通知。不支持远程(推送)通知。
函数
notification.schedule(message=None, delay=0, sound_name=None, action_url=None, title =None, subtitle=None, attachments=None, trigger=None, actions=None, identifier=None)
使用给定的选项安排通知。
返回值是一个字符串,可以用作标识符,例如稍后取消通知。
参数:
message
:通知的主要文本delay
:通知提交的时间,以秒为单位从现在起开始计算sound_name
:传递通知时应播放的内置声音效果或声音文件的名称。您可以设置None
(默认)来提交给无声通知,或“default
”提交并使用默认通知声音。action_url
:轻按通知时启动的URLtitle
:显示在消息上方的通知的标题subtitle
:通知的副标题attachments
:应当附加到通知的文件列表(例如图像)– 请注意,这些文件会立即复制,因此您以后无法更改任何附件。trigger
:一个字典,它包含比简单的delay
参数所允许的更复杂的触发器(请参阅下文)actions
:通知中附带的自定义操作按钮的定义。每个操作可以启动不同的URL或脚本。当您通过3D Touch(在受支持的设备上)从屏幕顶部向下拖动通知横幅时,或通过点击并按住通知(在不支持3D Touch的设备上)来显示通知动作。有关如何定义自定义操作的详细信息,请参见下文。identifier
:一个可选字符串,用作通知的标识符。如果已经安排了具有相同标识符的通知,它将被新的通知替换。
日期和位置触发器:
如果您需要比简单的delay
参数更复杂的通知触发器,则可以将一个dict
作为触发器参数。该触发器可以包含各种选项,这些选项定义基于日历或基于位置的通知触发器。基于日历的通知支持的值是:’repeats
‘,’year
‘, ‘quarter
‘, ‘month
‘, ‘day
‘, ‘weekday
‘,’weekday_ordinal
‘, ‘week_of_month
‘, ‘week_of_year
‘, ‘hour
‘, ‘minute
‘, ‘second
‘–您不必指定所有这些键,只需使用用例所需的日期/时间组件。重复通知的重复频率不能超过每分钟一次。
用于基于位置的通知的触发器支持值是:’latitude
‘,’longitude
‘,’radius
‘(米,默认= 100),’entry
‘,’exit
‘, ‘repeats
‘。在’entry
‘(到达位置时通知)和’exit
‘(离开位置时通知)的选项应该是True
或False
。默认情况下,两者均为真。基于位置的通知要求该应用有权访问您的位置(系统会自动提示您,您可以在“设置”应用中的“隐私”下进行更改)。
自定义通知动作:
actions
参数允许你传递的动作列表在该通知被激活时示为按钮(例如由支持3D触摸的设备上从锁定屏幕激活)。actions
应该是一个可能包含如下键的dict
的列表:
- ‘
title
‘ – 按钮的标题 - ‘
url
‘或’action_url
‘– 轻击按钮时启动的URL。如果这是运行脚本的pythonista://
URL,则除非’foreground
‘值设置为True
,否则脚本在后台运行。 - ‘
foreground
‘ – 看’action_url
‘ - ‘
destructive
‘ – 更改按钮的外观以警示破坏性操作(文本颜色变为红色) - ‘
text_input
‘– 设置为True
时,此操作将导致文本输入区域出现在通知界面内。要使用输入的文本,请将{text_input}
占位符放在此操作的URL中(通过’url
‘键设置)。如果您使用pythonista://
URL通过此操作启动脚本,则可以将输入的文本用作URL的args
参数,然后通过sys.argv
在脚本中来访问它。范例:pythonista3://MyScript.py?action=run&args={text_input}
。 - ‘
text_input_button_title
‘– ‘text_input
‘为True
时,指定“OK”按钮的标题 - ‘
text_input_placeholder
‘– 指定’text_input
‘为True
时的占位符文本
notification.cancel(identifier)
取消先前安排的一个通知。
notification_id
参数是通过get_scheduled()
或schedule()
返回的字符串。
notification.cancel_all()
取消所有先前安排的通知。
notification.get_scheduled()
返回计划的通知标识符的列表。
列表中的条目是可用于cancel()
功能的UUID字符串。
notification.remove_delivered(identifier)
删除已从通知中心提交的特定通知。注意:当用户激活通知时,这是自动完成的。
notification.remove_all_delivered()
删除所有已从通知中心提交的通知。注意:这只会影响此应用的通知。