import android.os.Bundle
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
import androidx.core.os.bundleOf
import androidx.fragment.app.Fragment
import androidx.navigation.NavController
import com.kinorlev.app.R
import com.kinorlev.app.databinding.FragmentWebViewBinding
import dagger.hilt.android.AndroidEntryPoint
@AndroidEntryPoint
class WebViewFragment : Fragment() {
companion object {
private const val LAYOUT = R.layout.fragment_web_view
private const val ARG_URL = "WebViewFragment.arg.url"
fun navigateFromHomeActivity(navController: NavController) {
val url = "https://coda.io/d/_dkDgRHxC6aK/_suLv3" //NOT WORKING
//val url = "https://coda.io/@kinor-lev/faq" //NOT WORKING
//val url = "https://www.wikipedia.org/" //WORKING
navController.navigate(R.id.action_navigation_home_to_navigation_webview, bundleOf(ARG_URL to url))
}
}
private var _binding: FragmentWebViewBinding? = null
private val binding get() = _binding!!
private lateinit var url: String
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
url = requireArguments().getString(ARG_URL)!!
}
override fun onCreateView(
inflater: LayoutInflater,
container: ViewGroup?,
savedInstanceState: Bundle?
): View? {
createView(inflater, container)
return binding.root
}
private fun createView(inflater: LayoutInflater, container: ViewGroup?) {
_binding = FragmentWebViewBinding.inflate(inflater, container, false)
with(binding.webView) {
settings.apply {
javaScriptEnabled = true
}
}
binding.webView.loadUrl(url)
}
override fun onDestroyView() {
super.onDestroyView()
_binding = null
}
}
<?xml version="1.0" encoding="utf-8"?>
<layout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools">
<FrameLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:background="@android:color/white">
<WebView
android:id="@+id/webView"
android:layout_width="match_parent"
android:layout_height="match_parent" />
</FrameLayout>
</layout>