Amazon Fire Stick 上的 Webview 不响应控制器
Webview on Amazon Fire Stick not responding to controller
我在 Cocos2d-x 中有一个 Android 应用程序,它使用 WebView 来显示前端菜单。目前它只是一个模型,只有一个 URL 到一个网站,这使得它很容易测试。
如果我在 Amazon Fire TV 棒上的 Amazon Web App Tester 中加载 URL 界面,它会完美运行,您可以使用控制器愉快地浏览界面。
但是,当我将应用程序加载到 Stick 上时,它在 WebView 组件中显示相同的 URL,然后控制器不起作用并且不会导航(甚至突出显示)界面。
如何让 WebView 像测试应用程序中的 Web 视图一样运行,并响应控制器?
最后的问题是我需要调用 superclass 函数,而不是 return false 来表示我没有处理输入。 cocos2d-x GameControllerActivity class 没有设置来处理这个问题,所以我不得不修改 GameControllerActivity.java 并添加一个新的静态 member/functions 来指示我希望我的应用程序何时有控制器输入,或者是否可以将其传递给 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调用了这些函数。
我在 Cocos2d-x 中有一个 Android 应用程序,它使用 WebView 来显示前端菜单。目前它只是一个模型,只有一个 URL 到一个网站,这使得它很容易测试。
如果我在 Amazon Fire TV 棒上的 Amazon Web App Tester 中加载 URL 界面,它会完美运行,您可以使用控制器愉快地浏览界面。
但是,当我将应用程序加载到 Stick 上时,它在 WebView 组件中显示相同的 URL,然后控制器不起作用并且不会导航(甚至突出显示)界面。
如何让 WebView 像测试应用程序中的 Web 视图一样运行,并响应控制器?
最后的问题是我需要调用 superclass 函数,而不是 return false 来表示我没有处理输入。 cocos2d-x GameControllerActivity class 没有设置来处理这个问题,所以我不得不修改 GameControllerActivity.java 并添加一个新的静态 member/functions 来指示我希望我的应用程序何时有控制器输入,或者是否可以将其传递给 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调用了这些函数。