我正在尝试在我正在制作的包中加入一个闪亮的实现。我在shiny::runApp()
中看到您可以将UI和服务器指定为列表而不是目录位置:
runApp(list(
ui = bootstrapPage(
numericInput('n', 'Number of obs', 100),
plotOutput('plot')
),
server = function(input, output) {
output$plot <- renderPlot({ hist(runif(input$n)) })
}
))
使用自定义HTML UI时如何执行此操作?相关文件应放在包的目录中的哪个位置?闪亮应用程序的布局看起来像这样:
server.R
www/
style.css
scripts.js
我认为解决方案可能涉及includeHTML()
,includeCSS()
等,但我无法弄清楚文档的内容。
答案 0 :(得分:17)
您的包层次结构应如下所示:
R
launcher.R
man
inst
myshinyapp
server.R
www
index.html ## here your ui interface
shared
js
yourscript.js
css
style.css
launcher.R中的应添加此功能:
runUI <- function ()
shiny::runApp(
system.file('myshinyapp',
package='my_package_name')) ## your package name here
您应该在NAMESPACE中导出/导入:
export(runUI)
import(shiny)
并在DESCRIPTION中导入部分:
Imports:shiny
答案 1 :(得分:2)
好吧,你可以通过将所有HTML放在HTML()函数中来实现这一点。确保你为Shiny传递有效的HTML然后你应该没事!
runApp(list(
ui = bootstrapPage(
HTML("<h1>Hello World</h1>")
),
server = function(input, output) {
output$plot <- renderPlot({ hist(runif(input$n)) })
}
))
答案 2 :(得分:1)
将包含HTML的index.html放入www文件夹中。现在删除 ui.R(如果存在)。现在只需
runApp(yourFolder)
其中yourFolder应该是服务器的路径.R。如果你的index.html设置正确,那么应该运行Shiny App。