このエントリは、Shiny公式サイトのNotificationの説明を抜粋・翻訳・追記したものです。
バージョン0.14から、showNotification()
関数を用いてShinyでブラウザ上に通知を表示できるようになっています。ShinyのGALLERYに例があります。
この例では、Showボタンが押されるときに注釈を表示するためにobserveEbent()
を用いています。
shinyApp( ui = fluidPage( actionButton("show", "Show") ), server = function(input, output) { observeEvent(input$show, { showNotification("This is a notification.") }) } )
通知はブラウザ端の右下に表示されて、5秒たつと自動的に消えます。
通知の表示方法を制御するためのオプションもあります。
デフォルトの色はグレーですが、type引数で他の色を指定できます。以下はtype引数を「defalut」「message」「warning」「error」にした場合です。
通知の右側にデフォルトで閉じるボタンが表示されていますが、closeButton = FALSE
で取り除けます。
action引数は、注釈の中のコンテンツを提供する追加の方法です。action
UIコンポーネントがメインテキストのすぐ下に現れます。別れていますが、CSSでカスタマイズできます。
showNotification()
関数は、サーバ側から通知を消すためにremoveNotification()
に渡すID値を返します。以下の例では、通知を表示するためのボタンと、もう一方の通知を消すためのボタンがあります。
shinyApp( ui = fluidPage( actionButton("show", "Show"), actionButton("remove", "Remove") ), server = function(input, output) { # 注釈ID id <- NULL observeEvent(input$show, { # 注釈が表示されているときに、もう片方を追加しないようにする if (!is.null(id)) return() # あとで取り除くためにIDを保存 id <<- showNotification(paste("Notification message"), duration = 0) }) observeEvent(input$remove, { if (!is.null(id)) removeNotification(id) id <<- NULL }) } )