我在Cocos2d-x中安装了一个Android应用程序,它使用WebView显示前端菜单。目前它只是一个模型,只有一个网站的URL,这使得它很容易测试。
如果我在Amazon Fire TV测试仪上加载界面的URL,它可以完美地运行,您可以使用控制器快乐地导航界面。
但是,当我在棒上加载应用程序时,它在WebView组件中显示相同的URL,那么控制器没有效果,也不会导航(甚至突出显示)界面。
如何使WebView的行为与测试人员应用程序中的Web视图一样,并响应控制器?
答案 0 :(得分: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调用这些函数。