「Winrtライブラリを使用して通知センターにアクセスする。(通知センターの通知を取得)」の版間の差分

提供:sufeeWiki
ナビゲーションに移動 検索に移動
編集の要約なし
1行目: 1行目:
== 内容 ==
== 内容 ==
通知取得
通知取得
※設定からアプリケーションによる通知を許可するをONにすること


==コード==
==コード==

2022年11月15日 (火) 18:40時点における版

内容

通知取得

※設定からアプリケーションによる通知を許可するをONにすること

コード

from winrt.windows.ui.notifications.management import UserNotificationListener, UserNotificationListenerAccessStatus
from winrt.windows.ui.notifications import NotificationKinds, KnownNotificationBindings
from winrt.windows.foundation.metadata import ApiInformation
import asyncio


async def maind():
  if not(ApiInformation.is_type_present("Windows.UI.Notifications.Management.UserNotificationListener")):
      print("アクセスなし ")
      return
  listener = UserNotificationListener.get_current()
  accessStatus = await listener.request_access_async()
  if(accessStatus != UserNotificationListenerAccessStatus.ALLOWED):
      print("アクセス拒否")
      print(dir(listener))
  notifications = await listener.get_notifications_async(NotificationKinds.TOAST)

  for i in notifications:
    text_sequence = i.notification.visual.get_binding(
      KnownNotificationBindings.get_toast_generic()
    ).get_text_elements()
    it = iter(text_sequence)
    print(f"Notification title({i.id}): ", it.current.text)
    while True:
      next(it, None)
      if it.has_current:
        print(it.current.text)
      else:
        break

loop = asyncio.get_event_loop()
loop.run_until_complete(maind())