diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index f978e34b..282b97b8 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -19,16 +19,10 @@ android:usesCleartextTraffic="true" tools:targetApi="31"> - - - - + + - (R.layout.activity_web_view) { + override fun onCreate(savedInstanceState: Bundle?) { + super.onCreate(savedInstanceState) + + initLayout() + loadWebView() + } + + @SuppressLint("SetJavaScriptEnabled") + private fun initLayout() { + binding.wvWebView.apply { + webViewClient = WebViewClient() + webChromeClient = WebChromeClient() + + settings.apply { + javaScriptEnabled = true + javaScriptCanOpenWindowsAutomatically = true + loadWithOverviewMode = true + useWideViewPort = true + domStorageEnabled = true + } + } + } + + private fun loadWebView() { + intent.getStringExtra(WEB_VIEW_LINK)?.let { binding.wvWebView.loadUrl(it) } + } + + companion object { + const val WEB_VIEW_LINK = "WebViewLink" + } +} diff --git a/app/src/main/java/org/sopt/pingle/util/context/ContextExt.kt b/app/src/main/java/org/sopt/pingle/util/context/ContextExt.kt index 6a6440c8..13774262 100644 --- a/app/src/main/java/org/sopt/pingle/util/context/ContextExt.kt +++ b/app/src/main/java/org/sopt/pingle/util/context/ContextExt.kt @@ -2,6 +2,7 @@ package org.sopt.pingle.util.context import android.app.Activity import android.content.Context +import android.content.Intent import android.view.View import android.view.inputmethod.InputMethodManager import android.widget.Toast @@ -9,6 +10,8 @@ import androidx.annotation.ColorRes import androidx.annotation.DrawableRes import androidx.annotation.StringRes import androidx.core.content.ContextCompat +import org.sopt.pingle.presentation.ui.common.WebViewActivity +import org.sopt.pingle.presentation.ui.common.WebViewActivity.Companion.WEB_VIEW_LINK fun Context.showToast(message: String, isShort: Boolean = true) { val duration = if (isShort) Toast.LENGTH_SHORT else Toast.LENGTH_LONG @@ -25,3 +28,7 @@ fun Context.stringOf(@StringRes resId: Int) = getString(resId) fun Context.colorOf(@ColorRes resId: Int) = ContextCompat.getColor(this, resId) fun Context.drawableOf(@DrawableRes resId: Int) = ContextCompat.getDrawable(this, resId) + +fun Context.navigateToWebView(link: String) = Intent(this, WebViewActivity::class.java).apply { + putExtra(WEB_VIEW_LINK, link) +} diff --git a/app/src/main/java/org/sopt/pingle/util/fragment/FragmentExt.kt b/app/src/main/java/org/sopt/pingle/util/fragment/FragmentExt.kt index bca86575..c07deab7 100644 --- a/app/src/main/java/org/sopt/pingle/util/fragment/FragmentExt.kt +++ b/app/src/main/java/org/sopt/pingle/util/fragment/FragmentExt.kt @@ -1,11 +1,13 @@ package org.sopt.pingle.util.fragment +import android.content.Intent import android.widget.Toast import androidx.annotation.ColorRes import androidx.annotation.DrawableRes import androidx.annotation.StringRes import androidx.core.content.ContextCompat import androidx.fragment.app.Fragment +import org.sopt.pingle.presentation.ui.common.WebViewActivity fun Fragment.showToast(message: String, isShort: Boolean = true) { val duration = if (isShort) Toast.LENGTH_SHORT else Toast.LENGTH_LONG @@ -18,3 +20,8 @@ fun Fragment.colorOf(@ColorRes resId: Int) = ContextCompat.getColor(requireConte fun Fragment.drawableOf(@DrawableRes resId: Int) = ContextCompat.getDrawable(requireContext(), resId) + +fun Fragment.navigateToWebView(link: String) = + Intent(requireContext(), WebViewActivity::class.java).apply { + putExtra(WebViewActivity.WEB_VIEW_LINK, link) + } diff --git a/app/src/main/res/layout/activity_web_view.xml b/app/src/main/res/layout/activity_web_view.xml new file mode 100644 index 00000000..f3c4047d --- /dev/null +++ b/app/src/main/res/layout/activity_web_view.xml @@ -0,0 +1,25 @@ + + + + + + + + + + + + + \ No newline at end of file