Изменить URL-адрес веб-просмотра через JavascriptInterface | Котлин AndroidAndroid

Форум для тех, кто программирует под Android
Ответить Пред. темаСлед. тема
Anonymous
 Изменить URL-адрес веб-просмотра через JavascriptInterface | Котлин Android

Сообщение Anonymous »

Я пытаюсь создать мобильное приложение с помощью WebView, и мне нужно изменить URL-адрес текущего веб-просмотра с помощью интерфейса JavaScript. Я столкнулся с сообщением об ошибке «Неперехваченная ошибка: исключение Java возникло во время вызова метода»
WebAppInterfaced.kt

Код: Выделить всё

package com.example.barangkalearninghub

import android.content.Context
import android.webkit.JavascriptInterface
import android.webkit.WebView

class WebAppInterfaced(val webview: WebView) {
@JavascriptInterface
fun PageRedirect(newUri: String) {
webview.loadUrl(newUri)
}
}
main.kt

Код: Выделить всё

package com.example.barangkalearninghub

import android.annotation.SuppressLint
import android.os.Bundle
import android.webkit.WebChromeClient
import android.webkit.WebView
import androidx.activity.enableEdgeToEdge
import androidx.appcompat.app.AppCompatActivity
import androidx.core.view.ViewCompat
import androidx.core.view.WindowInsetsCompat

@SuppressLint("SetJavaScriptEnabled")
class MainActivity : AppCompatActivity() {

override fun onCreate(savedInstanceState: Bundle?) {

super.onCreate(savedInstanceState)
enableEdgeToEdge()
setContentView(R.layout.activity_main)
ViewCompat.setOnApplyWindowInsetsListener(findViewById(R.id.main)) { v, insets ->
val systemBars = insets.getInsets(WindowInsetsCompat.Type.systemBars())
v.setPadding(systemBars.left, systemBars.top, systemBars.right, systemBars.bottom)
insets
}
val webView:WebView = findViewById(R.id.webViewMain)
webView.webChromeClient = WebChromeClient()
WebView.setWebContentsDebuggingEnabled(true)
val jsInterface:WebAppInterfaced = WebAppInterfaced(webView);
webView.addJavascriptInterface(jsInterface, "WebAppInterfaced")

webView.settings.databaseEnabled = true
webView.settings.allowFileAccess = true
webView.settings.javaScriptEnabled = true
webView.settings.domStorageEnabled = true
webView.settings.useWideViewPort = true
webView.loadUrl("file:///android_asset/index.html")
}

}
папка ресурсов – > index.html

Код: Выделить всё

window.addEventListener('load', function(){
var p = $("#demo");
p.html("hello jquery android");
setTimeout(function(){
WebAppInterfaced.PageRedirect("dashboard.html");
}, 5000);
});
Возможно ли это вообще? Как изменить веб-просмотр через jsinterface?
Не работает. Я попробовал вывести строку для проверки, действительно ли js-интерфейс доступен и работает ли он. Однако когда я использую webview.loadurl, возникает ошибка.

Подробнее здесь: https://stackoverflow.com/questions/790 ... in-android
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Android»