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:轻按通知时启动的URL
title:显示在消息上方的通知的标题
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()
删除所有已从通知中心提交的通知。注意:这只会影响此应用的通知。