Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

525
Visualizações
Android WebView: acceda a clases desde un iframe dentro de otro iframe

Tenemos una aplicación ios nativa, que muestra una vista web con una página web HTML y dos iframes. Dentro de esos iframes, mostramos nuestros artículos de archivos HTML ubicados en los recursos de la aplicación. Dentro de los artículos, a menudo hay scripts javascript que operan en ambos artículos al mismo tiempo. Por ejemplo, ponga alguna parte del texto en negrita. Para ello, lista todos los elementos con una determinada clase y modifica su estilo CSS.

 $(".question").length()

devolvería la cantidad de elementos con clase .question en ambos iframes en iOS, donde solo devolvería elementos del iframe actual en Android. Por "actual" me refiero a aquel con el que el usuario interactuó para iniciar el script.

Tenemos el requisito de lanzar también una aplicación para Android. Todo salió bien, hasta que probé un artículo, donde javascript tiene que operar en ambos iframes. Desafortunadamente, solo puede acceder a elementos de un iframe.

¿Hay alguna forma de que funcione sin cambiar el código de los javascript adjuntos a los artículos? No tengo autoridad allí [además de que podría haber miles de artículos con muchos javascript personalizados para actualizar].

Gracias

about 4 years ago · Santiago Trujillo
1 Respostas
Responde à pergunta

0

Así es como manejé un caso similar

 webview.loadDataWithBaseURL("file:///android_asset/", your_html_as_string_here, "text/html", "utf-8", null); webview.getSettings().setJavaScriptEnabled(true); // enable javascript webview.addJavascriptInterface(new WebViewJavaScriptInterface(getActivity()), "app");

y tiene que crear una clase interna y llamar a la misma función que se menciona en la interfaz de javascript como 'app.function1'

 public class WebViewJavaScriptInterface { private Context context; /* * Need a reference to the context in order to sent a post message l */ public WebViewJavaScriptInterface(Context context) { this.context = context; } /* * This method can be called from Android. @JavascriptInterface * required after SDK version 17. */ @JavascriptInterface public void function1() { ll_translucent.setVisibility(View.VISIBLE); } /* * This method can be called from Android. @JavascriptInterface * required after SDK version 17. */ @JavascriptInterface public void function2() { new CommonActions(getActivity()).showSnackToast(verticalSeekBar, "Purchase Episode to read Further"); } }
about 4 years ago · Santiago Trujillo Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda