Buka aplikasi berkilau dengan mengeklik tautan di aplikasi berkilau lain?

Hanya ingin tahu apakah ini mungkin. Saya memiliki aplikasi yang menampilkan tautan ke file tertentu dan ingin membuka aplikasi terpisah yang mengkilap ketika pengguna mengeklik salah satu tautan.


person Joe Bringley    schedule 20.02.2017    source sumber
comment
Apakah maksud Anda tautan ke aplikasi lain yang dihosting di server/akun Anda, atau situs eksternal?   -  person Carl Boneri    schedule 20.02.2017


Jawaban (2)


Untuk membuka tautan secara eksternal Anda dapat memasukkan:

tag("a", list(href = "http://www.myapps.com/otherapp", "Other App"))

Tag "a" dalam HTML (bahasa) digunakan untuk menunjukkan tautan secara umum dan atribut href adalah tempat penyisipan jalur. Di bawah ini saya memberikan contoh singkat menggunakan semua galeri Aplikasi Shiny dan tautan bantuan

ui <- bootstrapPage(
  tag('ul',
lapply(read_html("http://shiny.rstudio.com/gallery/") %>%
xml_find_all('//a'), function(i){
li <- url_absolute(xml_attr(i, 'href'), xml_url(i))
data.frame(li = li, 
          txt = stri_trans_totitle(
                trimws(gsub("\\-|\\.html"," ",basename(li)))),
          stringsAsFactors = FALSE)
  }) %>% rbind.pages() %>% 
dplyr::filter(!duplicated(txt)) %>% apply(., 1, function(x){
    tag("li",list(tag("a", list(href = x[[1]],x[[2]]))))
  }))
)

server <- function(session, input, output){

}

shinyApp(ui, server)

Untuk tautan apa pun ke aplikasi eksternal, Anda dapat menggunakan:

ext.link <- function(label = NULL, link = NULL){
   tag("a", list(href = link,
       ifelse(!is.null(label), label, basename(link))))
}

Yang akan menghasilkan html di aplikasi Anda:

> ext.link(label = "New app", link = "http://mypage.com/new_app")
  <a href="http://mypage.com/new_app">New app</a>
person Carl Boneri    schedule 20.02.2017

Terima kasih Carl, saya punya masalah serupa, dengan kebutuhan tambahan untuk membuat tautan dinamis yang berubah sesuai dengan beberapa tindakan pengguna. Saya menyelesaikannya dengan cara ini (saya menyesuaikan kembali kode mengkilap.rstudio.com/gallery Anda)

extract_info <- function(html_line) {
    li <- url_absolute(xml_attr(html_line, 'href'), xml_url(html_line))
    data.frame(li = li, 
               txt = stri_trans_totitle(trimws(gsub("\\-|\\.html", " ", basename(li)))),
               stringsAsFactors = FALSE)
}

mydata.df <- lapply(read_html("http://shiny.rstudio.com/gallery/") %>%
                       xml_find_all('//a'), 
                    function(line) extract_info(line)) %>%
    rbind_pages() %>% 
    dplyr::filter(!duplicated(txt))

ui <- fluidPage(        
    titlePanel("Select shiny apps"),
    sidebarLayout(
        sidebarPanel(
            numericInput(inputId = "myline", label = "Select one line", 
                         value = 1, min = 1, max = NA, step = 1),
            uiOutput("wantedlink")
        ),
        mainPanel(DT::dataTableOutput("mytable"))
    )
)

server <- function(session, input, output) {
    output$mytable <- DT::renderDataTable({ DT::datatable( mydata.df ) })

    mylink <- reactive({ 
        mydata.df$li[input$myline] })
    mytext <- reactive({ 
        mydata.df$txt[input$myline] })

    output$wantedlink <- renderUI({
       HTML(sprintf('<a href = %s target = "_blank">%s</a>', as.character(mylink()), mytext()))
    })
}

shinyApp(ui, server)
person ecarosati    schedule 04.07.2019