webview 限制跳转到系统浏览器

This commit is contained in:
renhaoting 2025-12-31 16:40:33 +08:00
parent ac41cdf3f0
commit dc4871c8b0
2 changed files with 43 additions and 1 deletions

View File

@ -40,7 +40,7 @@ object VidiConst {
const val URL_DISCORD: String = "https://discord.gg/qAZaaN8uaU" const val URL_DISCORD: String = "https://discord.gg/qAZaaN8uaU"
const val URL_GAME: String = "https://s.gamifyspace.com/tml?pid=20057&appk=ZPfHlw7v5plM1N2moiiaDzixPszLSxIl&did={%s}" const val URL_GAME: String = "https://s.gamifyspace.com/tml?pid=20057&appk=ZPfHlw7v5plM1N2moiiaDzixPszLSxIl&did=%s"
const val URL_PRIVACY: String = "https://rsappinc.com/privacy.html" const val URL_PRIVACY: String = "https://rsappinc.com/privacy.html"

View File

@ -1,10 +1,16 @@
package com.gamedog.vididin.features.game package com.gamedog.vididin.features.game
import android.annotation.SuppressLint
import android.app.Activity import android.app.Activity
import android.content.Intent import android.content.Intent
import android.view.LayoutInflater import android.view.LayoutInflater
import android.webkit.WebResourceRequest
import android.webkit.WebView
import android.webkit.WebViewClient
import androidx.activity.addCallback
import androidx.activity.viewModels import androidx.activity.viewModels
import com.ama.core.architecture.appBase.AppViewsActivity import com.ama.core.architecture.appBase.AppViewsActivity
import com.ama.core.architecture.ext.toast
import com.ama.core.architecture.util.AndroidUtil import com.ama.core.architecture.util.AndroidUtil
import com.gamedog.vididin.VidiConst import com.gamedog.vididin.VidiConst
import com.viddin.videos.free.R import com.viddin.videos.free.R
@ -22,17 +28,53 @@ class GameCenterActivity : AppViewsActivity<ViewBinding, UiState, ViewModel>(),
override val mViewModel: ViewModel by viewModels() override val mViewModel: ViewModel by viewModels()
override fun inflateViewBinding(inflater: LayoutInflater) = ViewBinding.inflate(inflater) override fun inflateViewBinding(inflater: LayoutInflater) = ViewBinding.inflate(inflater)
@SuppressLint("SetJavaScriptEnabled")
override fun ViewBinding.initViews() { override fun ViewBinding.initViews() {
with(binding) { with(binding) {
titlebar.setBackIconColor(R.color.black) titlebar.setBackIconColor(R.color.black)
titlebar.setTitleText(R.string.game_center, R.color.black) titlebar.setTitleText(R.string.game_center, R.color.black)
onBackPressedDispatcher.addCallback(this@GameCenterActivity) {
if (webView.canGoBack()) {
webView.goBack()
} else {
super.onBackPressed()
}
}
with(webView) {
settings.javaScriptEnabled = true
webViewClient = object : WebViewClient() {
override fun shouldOverrideUrlLoading(
view: WebView?,
request: WebResourceRequest
): Boolean {
request.url?.let { url ->
view?.loadUrl(url.toString())
}
return true
}
@Deprecated("For API level < 24")
override fun shouldOverrideUrlLoading(view: WebView?, url: String?): Boolean {
if (!url.isNullOrBlank()) {
view?.loadUrl(url)
}
return true
}
}
}
webView.loadUrl(String.format(VidiConst.URL_GAME, AndroidUtil.getGaid())) webView.loadUrl(String.format(VidiConst.URL_GAME, AndroidUtil.getGaid()))
} }
} }
override fun ViewBinding.initWindowInsets() { override fun ViewBinding.initWindowInsets() {
setImmerseRootView(contentRoot) setImmerseRootView(contentRoot)
} }