Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

234
Views
La interfaz JS no funciona con Android Kotlin

Estoy tratando de implementar la interfaz JS en mi WebView. Creé una clase separada con un método que llama al oyente, posteriormente, la cadena capturada por el oyente debe colocarse en la intención (en MainActivity) y finaliza la intención. MainActivity.kt:

 import android.annotation.SuppressLint import android.content.Context import android.content.Intent import android.os.Bundle import android.webkit.JavascriptInterface import android.webkit.WebChromeClient import android.webkit.WebSettings import android.webkit.WebViewClient import androidx.appcompat.app.AppCompatActivity import sbs.pros.app.databinding.ActivityMainBinding typealias IDListener = (qr: String) -> Unit class MainActivity : AppCompatActivity() { private lateinit var binding: ActivityMainBinding private val answerIntent = Intent() @SuppressLint("SetJavaScriptEnabled") override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) binding = ActivityPayBinding.inflate(layoutInflater) val WebView = binding.webView val webSettings: WebSettings = WebView.settings WebView.settings.javaScriptEnabled = true WebView.settings.javaScriptCanOpenWindowsAutomatically = true webSettings.builtInZoomControls = false WebView.webViewClient = WebViewClient() WebView.webChromeClient = WebChromeClient() WebView.addJavascriptInterface(WebAppInterface(this ) { id -> answerIntent.putExtra("pay", id) setResult(RESULT_OK) finish() }, "AndroidInterface") WebView.setInitialScale(160) WebView.loadUrl("https://pros.sbs/payment/create_payment.php?apicall=one_address") setContentView(binding.root) } } class WebAppInterface internal constructor(c: Context, listener: IDListener) { var mContext: Context = c fun WebAppInterface(context: Context) { this.mContext = context } @JavascriptInterface @SuppressWarnings("unused") fun getID(id: String?, listener: IDListener) { if (id != null) { listener(id) } } }

crear_pago.php:

 <script src="javascript.js"> function giveID(id) { AndroidInterface.getID(id); } </script> <?php if(null !==filter_input(INPUT_GET, 'apicall')){ switch(filter_input(INPUT_GET, 'apicall')){ case 'one_address': ?> <script src="javascript.js"> giveID('some_id'); </script> <?php break; } }

La intención debería terminar, mostrando un resultado (String) en un TextView separado. Desafortunadamente, eso no sucede y el resultado devuelto es nulo. Por favor, ayúdame a encontrar el problema con la interfaz.

about 4 years ago · Juan Pablo Isaza
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!