1

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

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

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

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

4

1 回答 1

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 调用这些函数。

于 2017-09-20T16:09:43.273 回答