2017-07-03 4 views
2

私は、一連のアプリをバンドルするパッケージを作成しています。カテゴリに基づいてアプリを選択できるようにRStudio addinが必要です。このアプリはshiny gadgetです。これは、光沢のあるアプリの特別なミニバージョンです。私はエラーを与えている別のアプリ内からrunAppを使用することはできませんRStudioガジェット内からシャイニーアプリを開く方法

  • 問題があることです。

  • 私は試して何もしなかったので、私が起動したいアプリを返すことができません。

    observeEvent(input$done,{ 
         theapp <- shinyAppDir("Dir/to/app") 
         stopApp(theapp) 
        }) 
    

    しかし無駄に:私は、コードを次しているガジェットサーバ機能インサイド

。私は戻り値としてアプリをキャッチすることができますが、何とかそれは自動的に開きません。

+0

質問どこか参照として。そのような参照を持つためには良い場所はありませんが、そうです。 –

答えて

2

この問題を回避するには、rstudioapiパッケージを使用して、アプリケーションを終了するときにRコンソールにコマンドを送信します。サーバ機能のコードは、次のようになります。

observeEvent(input$done,{ 
     command <- "shinyAppDir('Dir/to/app')" 
     rstudioapi::sendToConsole(command) 
     stopApp() 
    }) 

おもちゃの例説明するために:私は半日のためにこれを戦ってきたと私はそれを維持したいとQA形式で答え

library(shiny) 
ui2 <- fluidPage(
    title = "The Second App", 
    plotOutput("plot") 
) 
server2 <- function(input, output, session){ 
    output$plot <- renderPlot(hist(iris$Sepal.Length)) 
} 

library(miniUI) 
library(rstudioapi) 
theGadget <- function(){ 
    ui <- miniPage(
    gadgetTitleBar("Get some app"), 
    miniContentPanel(
     renderText("Click on Done") 
    ) 
) 
    server <- function(input, output, session){ 
    observeEvent(input$done,{ 
     command <- "shinyApp(ui2, server2)" 
     rstudioapi::sendToConsole(command) 
     stopApp() 
    }) 
    } 
    viewer <- dialogViewer("Example") 
    runGadget(ui, server, viewer = viewer) 
} 

theGadget() 
関連する問題