跑痒.IO游戏在我的android应用程序的webview



我在itch上用unity制作了一款游戏。我想在我的自定义android应用程序webview中打开和玩这个游戏。这里我使用。

myWebView.loadUrl("https://teamwood.itch.io/super-auto-pets")
myWebView.settings.javaScriptEnabled = true

Url正在加载,但点击运行游戏什么都没有发生。我甚至可以在webview

中执行这个吗?

痒。io支持全屏webgl游戏,尽管游戏可以在网页视图中运行,如果它不是全屏的。对于全屏模式,你可以按照代码,下面是我的游戏活动代码的代码,它只是由一个网页视图。

package com.example.game
import android.content.Context
import android.graphics.Bitmap
import android.graphics.BitmapFactory
import android.os.Bundle
import android.view.View
import android.webkit.WebChromeClient
import android.webkit.WebView
import android.webkit.WebViewClient
import android.widget.FrameLayout
import androidx.appcompat.app.AppCompatActivity

class GameActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_game)
val webView: WebView = findViewById(R.id.gameView)
webView.settings.javaScriptEnabled = true
supportActionBar?.hide()
webView.webViewClient= MyBrowser()
webView.webChromeClient = MyWebClient(this@GameActivity.applicationContext,this@GameActivity)
webView.loadUrl("https://teamwood.itch.io/super-auto-pets")
}
internal class MyBrowser : WebViewClient() {
override fun shouldOverrideUrlLoading(paramWebView: WebView, paramString: String): Boolean {
paramWebView.loadUrl(paramString)
return true
}
}

}
open class MyWebClient(private val context: Context,private val activity: GameActivity) : WebChromeClient() {
private var mCustomView: View? = null
private var mCustomViewCallback: CustomViewCallback? = null
protected var mFullscreenContainer: FrameLayout? = null
private var mOriginalOrientation = 0
private var mOriginalSystemUiVisibility = 0
override fun getDefaultVideoPoster(): Bitmap? {
return if (this == null) {
null
} else BitmapFactory.decodeResource(
context.resources, 2130837573
)
}
override fun onHideCustomView() {
(activity.window.decorView as FrameLayout).removeView(mCustomView)
mCustomView = null
activity.window.decorView.systemUiVisibility = mOriginalSystemUiVisibility
activity.requestedOrientation = mOriginalOrientation
mCustomViewCallback!!.onCustomViewHidden()
mCustomViewCallback = null
}
override fun onShowCustomView(
paramView: View?,
paramCustomViewCallback: CustomViewCallback?
) {
if (mCustomView != null) {
onHideCustomView()
return
}
mCustomView = paramView
mOriginalSystemUiVisibility =
activity.window.decorView.systemUiVisibility
mOriginalOrientation = activity.requestedOrientation
mCustomViewCallback = paramCustomViewCallback
(activity.window.decorView as FrameLayout).addView(
mCustomView,
FrameLayout.LayoutParams(-1, -1)
)
activity.window.decorView.systemUiVisibility = 3846
}
}