У меня проблема при попытке отобразить HTML-страницу, полученную от API, в моем WebView
.
Похоже, что нет загруженного JavaScript и CSS.
Кроме того, когда я нажимаю определенные кнопки, я могу перейти на другую страницу, но если я нажимаю на другие кнопки, ничего не происходит.
Я уже пытался включить Javascript в WebView
.
Переменная webPage содержит код HTML.
Вот мой код:
@SuppressLint("SetJavaScriptEnabled")
private fun showGarminDiag(webPage : String)
{
val dialogView = View.inflate(context, R.layout.dialog_garmin_connect, null)
val dialog = Dialog(context, R.style.MyAlertDialogStyle)
dialog.requestWindowFeature(Window.FEATURE_NO_TITLE)
dialog.setContentView(dialogView)
val mWebView = dialogView.findViewById<WebView?>(R.id.garmin_connect_webview)
//val mWebView = dialogView.findViewById<AdvancedWebView?>(R.id.garmin_connect_webview)
val back = dialogView.findViewById<Button?>(R.id.webview_back)
val forward = dialogView.findViewById<Button?>(R.id.webview_forward)
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
mWebView?.settings?.mixedContentMode = WebSettings.MIXED_CONTENT_COMPATIBILITY_MODE
//mWebView?.settings?.mixedContentMode = WebSettings.MIXED_CONTENT_ALWAYS_ALLOW
}
mWebView?.settings?.javaScriptEnabled = true
mWebView?.settings?.javaScriptCanOpenWindowsAutomatically = true
mWebView?.loadData(webPage, "text/html", "UTF-8")
back?.setOnClickListener({
if (mWebView != null && mWebView.canGoBack())
mWebView.goBack()
})
forward?.setOnClickListener({
if (mWebView != null && mWebView.canGoForward())
mWebView.goForward()
})
mWebView?.webViewClient = object : WebViewClient() {
override fun onPageFinished(view: WebView?, url: String?) {
super.onPageFinished(view, url)
val test = url
Toast.makeText(context, url, Toast.LENGTH_LONG).show()
if (url == "success")
{
getProfile()
}
val t = 0
}
override fun onFormResubmission(view: WebView?, dontResend: Message?, resend: Message?) {
super.onFormResubmission(view, dontResend, resend)
val test = dontResend
val test1 = resend
val t = 0
}
}
dialog.window.setBackgroundDrawable(ColorDrawable(Color.TRANSPARENT))
dialog.show()
}
А вот мой XML-файл:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
android:id="@+id/garmin_connect_layout"
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:paddingBottom="5dp">
<Button
android:id="@+id/webview_back"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true"
android:text="Retour"
android:background="@drawable/blue_all_rounded_shape"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
<Button
android:id="@+id/webview_forward"
android:layout_alignParentRight="true"
android:layout_alignParentEnd="true"
android:text="Avancer"
android:background="@drawable/blue_all_rounded_shape"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
</RelativeLayout>
<WebView
android:id="@+id/garmin_connect_webview"
android:layout_width="match_parent"
android:layout_height="match_parent" />
<!--
<im.delight.android.webview.AdvancedWebView
android:id="@+id/garmin_connect_webview"
android:layout_width="match_parent"
android:layout_height="match_parent" />
-->
</LinearLayout>
Вот ссылка, чтобы увидеть пример того, что содержит переменная webPage:
https://codeshare.io/5e4ZyJ