javascript - 未找到适用于 Android TV 的 TVEventHandler

标签 javascript android react-native

我正在尝试为 android tv 构建一个应用程序,我想使用远程移动。我首先检查是否有可以帮助我解决此问题的软件包,但我找不到。

然后我继续查看列出的官方文档 here

我正在尝试使用这段代码:

var TVEventHandler = require('TVEventHandler');

class Game2048 extends React.Component {
  _tvEventHandler: any;

  _enableTVEventHandler() {
    this._tvEventHandler = new TVEventHandler();
    this._tvEventHandler.enable(this, function(cmp, evt) {
      if (evt && evt.eventType === 'right') {
        cmp.setState({board: cmp.state.board.move(2)});
      } else if(evt && evt.eventType === 'up') {
        cmp.setState({board: cmp.state.board.move(1)});
      } else if(evt && evt.eventType === 'left') {
        cmp.setState({board: cmp.state.board.move(0)});
      } else if(evt && evt.eventType === 'down') {
        cmp.setState({board: cmp.state.board.move(3)});
      } else if(evt && evt.eventType === 'playPause') {
        cmp.restartGame();
      }
    });
  }

  _disableTVEventHandler() {
    if (this._tvEventHandler) {
      this._tvEventHandler.disable();
      delete this._tvEventHandler;
    }
  }

  componentDidMount() {
    this._enableTVEventHandler();
  }

  componentWillUnmount() {
    this._disableTVEventHandler();
  }

但是 var TVEventHandler = require('TVEventHandler'); 说没有找到名为 TVEventHandler 的模块。我尝试从 react-native/Libraries/Components/AppleTV 手动导入它,这给了我一个错误,指出组件可能没有导出错误。 我不确定我在这里做错了什么。我做了医生要求的一切

最佳答案

解决了这个问题。在你的类里面使用它。并确保从 react-native 导入 TVEventHandler:

_tvEventHandler: any;


_enableTVEventHandler() {
        var self = this;
        this._tvEventHandler = new TVEventHandler();
        this._tvEventHandler.enable(this, function (cmp, evt) {
            console.log("kcubsj"+evt.eventType)
            if (evt && evt.eventType === 'right') {
                console.log('right');
            } else if (evt && evt.eventType === 'up') {
                console.log('up');
            } else if (evt && evt.eventType === 'left') {
                console.log('left');
            } else if (evt && evt.eventType === 'down') {
                console.log('down');
            } else if (evt && evt.eventType === 'select') {
                //self.press();
            }
        });
    }

_disableTVEventHandler() {
        if (this._tvEventHandler) {
            this._tvEventHandler.disable();
            delete this._tvEventHandler;
        }
    }

 componentDidMount() {
        this._enableTVEventHandler();
    }

componentWillUnmount() {
        this._disableTVEventHandler();
    }

Original Answer

关于javascript - 未找到适用于 Android TV 的 TVEventHandler,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60088058/

相关文章:

javascript - Meteor 发布和订阅路由

javascript - 简单的 javascript onClick 文本更改

php - 使用 gettext 在 ajax 调用中翻译电子邮件

java - onAppWidgetOptionsChanged() 在屏幕上唤醒调用。如何防止这种情况发生?

javascript - 如何在React Native中进行条件渲染

javascript - 试图模仿选择,但我失败了

Android OS 2.2 权限 : I have absolutely no idea why this simple piece of code doesn't work. 我做错了什么?

java - 资源/目录树

java - react-native-notifications 在 iOS 上工作,在 Android 上失败

react-native - 我应该什么时候运行 `react-native start` ?