WebViewNews.kt 1.4KB

12345678910111213141516171819202122232425262728293031323334353637383940414243
  1. package fr.riff_app.riff.ui.news
  2. import android.annotation.SuppressLint
  3. import android.content.Intent
  4. import android.net.Uri
  5. import android.webkit.WebChromeClient
  6. import android.webkit.WebView
  7. class WebViewNews(private val webView: WebView) {
  8. @SuppressLint("SetJavaScriptEnabled")
  9. fun start(url: String) {
  10. val webSetting = this.webView.settings
  11. webSetting.javaScriptEnabled = true
  12. webSetting.setSupportZoom(true)
  13. webSetting.textZoom = 100
  14. webSetting.setSupportMultipleWindows(true)
  15. // needs to open target="_blank" links as KiwiIRC links have this attribute.
  16. // shamelessly ripped off https://stackoverflow.com/questions/18187714/android-open-target-blank-links-in-webview-with-external-browser
  17. this.webView.webChromeClient = object : WebChromeClient() {
  18. override fun onCreateWindow(
  19. view: WebView,
  20. dialog: Boolean,
  21. userGesture: Boolean,
  22. resultMsg: android.os.Message
  23. ): Boolean {
  24. val result = view.hitTestResult
  25. val data = result.extra
  26. val context = view.context
  27. val browserIntent = Intent(Intent.ACTION_VIEW, Uri.parse(data))
  28. context.startActivity(browserIntent)
  29. return false
  30. }
  31. }
  32. webView.loadUrl(url)
  33. }
  34. }