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.
Buka aplikasi berkilau dengan mengeklik tautan di aplikasi berkilau lain?
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