r - 将 R Shiny 书签保存到本地 .url
问题描述
我有一个漂亮的闪亮应用程序,想为应用程序的状态添加书签并打开一个保存文件对话框,允许用户将 URL 快捷方式保存到他/她的机器以供以后使用。下面的示例代码。目前该应用程序仅显示 ulr 链接,但不会创建 url 快捷方式或将其保存在任何地方。看起来很简单,但我没有直接找到任何关于这个的帖子,我自己也没有完全弄清楚。
ui <- function(request) {
fluidPage(
textInput("txt", "Enter text"),
checkboxInput("caps", "Capitalize"),
verbatimTextOutput("out"),
bookmarkButton()
)
}
server <- function(input, output, session) {
output$out <- renderText({
if (input$caps)
toupper(input$txt)
else
input$txt
})
}
shinyApp(ui, server, enableBookmarking = "url")
我发现以下帖子很有用,但它并没有完全得到我正在寻找的结果。关联
解决方案
我回答晚了,但它可以帮助下一个访客。您可以使用shinyFiles包。该解决方案不美观,因为您必须在保存之前先单击书签按钮。
library(shiny)
library(shinyFiles)
ui <- function(request) {
fluidPage(
textInput("txt", "Enter text"),
checkboxInput("caps", "Capitalize"),
verbatimTextOutput("out"),
bookmarkButton(id="bookmarkBtn"),
shinySaveButton("save", "Save file", "Save file as ...", filetype=list(txt=".txt"))
)
}
server <- function(input, output, session) {
output$out <- renderText({
if (input$caps)
toupper(input$txt)
else
input$txt
})
myBookmarks <- reactiveValues(urlDF = NULL)
observeEvent(input$bookmarkBtn, {
session$doBookmark()
})
onBookmarked(fun=function(url){
myBookmarks$urlDF <- url
})
observeEvent(input$bookmarkBtn, {
print(myBookmarks$urlDF)
})
observe({
roots <- getVolumes()
shinyFileSave(input, "save", roots=roots, session=session)
fileinfo <- parseSavePath(roots, input$save)
if (nrow(fileinfo) > 0) {
write.table(myBookmarks$urlDF, as.character(fileinfo$datapath))
}
})
}
shinyApp(ui, server, enableBookmarking = "url")
推荐阅读
- python - 按元素对列表组合求和
- reactjs - 在 JSX 中定义变量
- circleci - 带有 Circle CI 覆盖源的 Codecov
- reactjs - 登录前后渲染组件
- reactjs - 在 CRA 中使用 `yarn start` 启动服务器时,服务器打开速度太慢
- android - 在recycleview中保存复选框状态两种方式数据绑定
- css - CSS:为什么将十六进制颜色转换为 hsl 然后再转换回十六进制会导致不同的值
- r - 在 R 的 Hunspell 词典中手动添加自定义单词
- c# - 如何注册
- maven - mvn clean install -U 和 eclipse 项目之间的区别 => Maven => 更新项目