安卓HTML5游戏

3

我试图从互联网加载HTML5游戏并在我的WebView中显示它,但当我尝试这样做时,我无法加载游戏,我的显示器是黑色的,只有一行(高约30像素)显示在我的屏幕上,这是我的代码:

public class BrowserGame extends MenuHandler {

    @Override
    public void onCreate(Bundle icicle) {
        super.onCreate(icicle);
        setContentView(R.layout.browsergame);

        WebView browser = (WebView)findViewById(R.id.webGame);
        browser.setFocusableInTouchMode(false);

        browser.setWebViewClient(new WebViewClient(){
            @Override  
            public boolean shouldOverrideUrlLoading(WebView view, String url)  
            {
                view.loadUrl(url);
                return true;  
            }
        });

        Bundle game = getIntent().getExtras();
        String gameURL = game.getString("gameURL");

        browser.loadUrl(gameURL);
    }
}

当我在移动浏览器上尝试相同的链接时,它会显示游戏。
谢谢。

这个问题的信息严重不足。不知道它要加载什么类型的HTML页面/数据,这个问题是无法回答的。 - Mikko Ohtamaa
这是链接: http://m.spacemonsters.co.uk/galactians/ - Kec
1个回答

3
您尝试在您的WebView中加载/播放的游戏不是纯HTML5应用程序,而是一个简单的JavaScript游戏。
要使它在您自己的WebView中工作,您需要为此WebView启用JavaScript
WebView myWebView = (WebView) findViewById(R.id.webview);
WebSettings webSettings = myWebView.getSettings();
webSettings.setJavaScriptEnabled(true);

在我的测试用例中,这也不起作用。您看到的蓝线是游戏的加载程序。LogCat报告了game.js脚本的错误:

WARN/webview(1208): Miss a drag as we are waiting for WebCore's response for touch down.
ERROR/Web Console(1208): TypeError: Result of expression 'event' [undefined] is not an object. at http://m.spacemonsters.co.uk/galactians/game.js:261

这个错误只会在使用WebView时出现,Android标准浏览器不会抛出此错误。当您点击游戏时,会抛出此错误。它也会在Android标准浏览器中抛出,因此可能不是问题的根源。

此外,标准的Android浏览器(可以玩游戏)和WebView处理和处理JavaScript的方式似乎有所不同。这里发布了一些解决方法(链接),请查看是否适用于您的情况。


趣闻:游戏中存在一个漏洞,使得获得非常高的分数变得非常容易。您可以使用P键暂停游戏。在暂停模式下,您仍然可以移动飞船并生成射击(您只是看不到它们)。再次按下P后,您的射击就会飞出。

这也使得很容易避免被敌人的激光射击命中;)


我尝试了这个代码,但屏幕中央只有一条蓝线,无法看到游戏。 WebView browser = (WebView)findViewById(R.id.webGame); WebSettings webSettings = browser.getSettings(); webSettings.setJavaScriptEnabled(true); - Kec
我添加了一些研究和可能的解决方法。看看吧。 - Lukas Knuth

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接