【问题标题】:Webview on Amazon Fire Stick not responding to controllerAmazon Fire Stick 上的 Webview 没有响应控制器
【发布时间】:2017-09-19 17:27:40
【问题描述】:

我在 Cocos2d-x 中有一个 Android 应用程序,它使用 WebView 来显示前端菜单。目前它只是一个模型,只有一个网站的 URL,便于测试。

如果我在 Amazon Fire TV 棒上的 Amazon Web App Tester 中加载界面的 URL,它可以完美运行,您可以使用控制器愉快地导航界面。

但是,当我在 Stick 上加载应用程序时,它在 WebView 组件中显示相同的 URL,然后控制器不起作用并且不会导航(甚至突出显示)界面。

如何让 WebView 表现得像测试应用程序中的 Web 视图,并响应控制器?

【问题讨论】:

  • 这似乎与我使用 GameControllerActivity 有关。毫无帮助的是,即使我强制 GameController 声称它没有处理任何输入(即从所有调度方法返回 false),Web 浏览器似乎仍然没有处理它们。

标签: controller android-webview cocos2d-x amazon-fire-tv


【解决方案1】:

最后的问题是我需要调用超类函数,而不是返回 false 表示我没有处理输入。 cocos2d-x GameControllerActivity 类没有设置来解决这个问题,所以我不得不修改 GameControllerActivity.java 并添加一个新的静态成员/函数来指示我希望我的应用程序何时具有控制器输入或者是否可以将其传递给 WebView 进行处理。

额外功能:

private static boolean smGrabJoypadInput = false;

public static void grabJoypad() {
    smGrabJoypadInput = true;
}

public static void releaseJoypad() {
    smGrabJoypadInput = false;
}

修改功能:

@Override
public boolean dispatchKeyEvent(KeyEvent event) {

if (!smGrabJoypadInput)
   return super.dispatchKeyEvent(event);
...

@Override
public boolean dispatchGenericMotionEvent(MotionEvent event) {

    if (!smGrabJoypadInput)
        return super.dispatchGenericMotionEvent(event);

然后我在需要时通过 JNI 调用这些函数。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-01-06
    • 2018-10-29
    相关资源
    最近更新 更多