|
@@ -5,13 +5,11 @@ import android.os.Bundle
|
|
|
import android.view.Gravity
|
|
|
import android.view.ViewGroup
|
|
|
import android.view.ViewGroup.LayoutParams.WRAP_CONTENT
|
|
|
-import android.webkit.JavascriptInterface
|
|
|
-import android.webkit.WebResourceRequest
|
|
|
-import android.webkit.WebView
|
|
|
-import android.webkit.WebViewClient
|
|
|
+import android.webkit.*
|
|
|
import android.widget.FrameLayout
|
|
|
import android.widget.ImageView
|
|
|
import androidx.constraintlayout.widget.ConstraintLayout
|
|
|
+import androidx.lifecycle.lifecycleScope
|
|
|
import com.google.gson.Gson
|
|
|
import com.swago.baseswago.baseroom.IRoomActiveListener
|
|
|
import com.swago.baseswago.baseroom.IRoomInfo
|
|
@@ -27,14 +25,15 @@ import com.swago.baseswago.model.im.CusNewMsgBean
|
|
|
import com.swago.baseswago.model.im.FollowSuccessMsgBean
|
|
|
import com.swago.baseswago.model.im.GameData
|
|
|
import com.swago.baseswago.model.live.game.GameInfoModel
|
|
|
-import com.swago.baseswago.util.DpPxUtil
|
|
|
-import com.swago.baseswago.util.NoDoubleClickListener
|
|
|
-import com.swago.baseswago.util.SwagoInfo
|
|
|
-import com.swago.baseswago.util.UserInfo
|
|
|
+import com.swago.baseswago.util.*
|
|
|
import com.swago.room.R
|
|
|
import com.swago.room.bean.UserRoomModel
|
|
|
import com.swago.room.databinding.DialogGamePlayBinding
|
|
|
+import kotlinx.coroutines.Dispatchers
|
|
|
+import kotlinx.coroutines.launch
|
|
|
+import kotlinx.coroutines.withContext
|
|
|
import org.json.JSONObject
|
|
|
+import java.io.File
|
|
|
|
|
|
/**
|
|
|
*@date 2022/1/19 20:41
|
|
@@ -45,6 +44,7 @@ class GamePlayDialog : BaseXDFragment<DialogGamePlayBinding>(), IRoomActiveListe
|
|
|
private var url = ""
|
|
|
|
|
|
private var webView: WebView? = null
|
|
|
+ private var localGameUrl = ""
|
|
|
private val jsLoad by lazy {
|
|
|
JSLoad()
|
|
|
}
|
|
@@ -80,6 +80,9 @@ class GamePlayDialog : BaseXDFragment<DialogGamePlayBinding>(), IRoomActiveListe
|
|
|
SwagoRoomManager.addListener(this)
|
|
|
arguments?.let {
|
|
|
url = it.getString(URL, "")
|
|
|
+ if (url.startsWith("file://")){
|
|
|
+ localGameUrl = url
|
|
|
+ }
|
|
|
isFullScreen = it.getBoolean(FULL_GAME,false)
|
|
|
activity?.let { activity ->
|
|
|
|
|
@@ -114,6 +117,27 @@ class GamePlayDialog : BaseXDFragment<DialogGamePlayBinding>(), IRoomActiveListe
|
|
|
): Boolean {
|
|
|
return super.shouldOverrideUrlLoading(view, request)
|
|
|
}
|
|
|
+
|
|
|
+ override fun onReceivedError(
|
|
|
+ view: WebView?,
|
|
|
+ request: WebResourceRequest?,
|
|
|
+ error: WebResourceError?
|
|
|
+ ) {
|
|
|
+ super.onReceivedError(view, request, error)
|
|
|
+ try {
|
|
|
+ if (localGameUrl.isNotEmpty()) {
|
|
|
+ lifecycleScope.launch {
|
|
|
+ withContext(Dispatchers.IO) {
|
|
|
+ val file =
|
|
|
+ File(localGameUrl.substring(7, localGameUrl.length - 11))
|
|
|
+ FileUtil.deleteFile(file)
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ } catch (e: Exception) {
|
|
|
+ e.printStackTrace()
|
|
|
+ }
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
//设置大小
|