Как получить необработанный HTML -ответ Android WebViewClientAndroid

Форум для тех, кто программирует под Android
Ответить
Anonymous
 Как получить необработанный HTML -ответ Android WebViewClient

Сообщение Anonymous »

  • Решение должно работать над API> 20 < /li>
    Это решение не работает. Я предполагаю, что это работает только на нижних версиях API Android. Я тестирую на Android 8.0. < /li>
    Я попытался использовать модернизацию, как только страница загружена, вместо получения HTML через WebViewClient. Но пользователь не вошел в систему в запросе модернизации. И тогда я делаю то же самое 2 раза. < /P>

    @SuppressLint("JavascriptInterface")
    private fun initializeWebView(url : String?) {
    binding.webView.loadUrl(url)
    binding.webView.settings.javaScriptEnabled = true
    binding.webView.settings.useWideViewPort = true
    binding.webView.requestFocus(View.FOCUS_DOWN)
    binding.webView.addJavascriptInterface(MyJavaScriptInterface(context!!), "HtmlViewer");

    binding.webView.webViewClient = object : WebViewClient() {
    override fun shouldOverrideUrlLoading(view: WebView, request: WebResourceRequest): Boolean {
    return false
    }

    override fun onPageFinished(view: WebView?, url: String?) {
    // super.onPageFinished(view, url)

    //tried adding a sleep, but doesn't work:
    Thread.sleep(6000)

    //showHTML method is not being called:
    binding.webView.loadUrl("javascript:window.HtmlViewer.showHTML" +
    "(''+document.getElementsByTagName('html')[0].innerHTML+'');")

    // Prints out: html: null
    binding.webView.evaluateJavascript(
    "javascript:window.HtmlViewer.showHTML" +
    "(''+document.getElementsByTagName('html')[0].innerHTML+'');"
    ) { html ->
    Log.d("HTML", html)
    // code here
    }
    }
    }
    }

    class MyJavaScriptInterface(val context: Context) {

    fun showHTML(html: String) {
    Log.d("",""+html)

    AlertDialog.Builder(context).setTitle("HTML").setMessage(html)
    .setPositiveButton(android.R.string.ok, null).setCancelable(false).create().show() }
    }
    ​​


Подробнее здесь: https://stackoverflow.com/questions/530 ... viewclient
Ответить

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

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

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

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

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