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

提供:sufeeWiki
ナビゲーションに移動 検索に移動
 
(同じ利用者による、間の2版が非表示)
13行目: 13行目:
async def maind():
async def maind():
   if not(ApiInformation.is_type_present("Windows.UI.Notifications.Management.UserNotificationListener")):
   if not(ApiInformation.is_type_present("Windows.UI.Notifications.Management.UserNotificationListener")):
       print("アクセスなし ")
       print("このデバイスではこの機能は使用できません")
       return
       return
   listener = UserNotificationListener.get_current()
   listener = UserNotificationListener.get_current()
   accessStatus = await listener.request_access_async()
   accessStatus = await listener.request_access_async()
   if(accessStatus != UserNotificationListenerAccessStatus.ALLOWED):
   if(accessStatus != UserNotificationListenerAccessStatus.ALLOWED):
       print("アクセス拒否")
       print("設定からアプリケーションによる通知を許可するをONにすること")
      print(dir(listener))
   notifications = await listener.get_notifications_async(NotificationKinds.TOAST)
   notifications = await listener.get_notifications_async(NotificationKinds.TOAST)



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

内容

通知取得

※設定からアプリケーションによる通知を許可するを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("設定からアプリケーションによる通知を許可するをONにすること")
  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())