当应用程序转到后台时删除DOM元素

时间:2015-10-09 09:18:50

标签: javascript angularjs iframe ionic

我正在尝试在用户离开我的Ionic应用程序时从DOM中删除iframe,以便YouTube视频停止播放。

我正在使用pauseresume事件:

$ionicPlatform.on('resume', function() {
  $rootScope.$broadcast('onResume');
});

$ionicPlatform.on('pause', function() {
  $rootScope.$broadcast('onPause');
});

当我离开应用时会触发pause事件,并且当我再次打开它时会触发resume事件(我检查了时间,以确保它们都没有在{{1}上触发但是iframe不会从DOM中删除。

我在包裹iframe的resume上使用ng-if="showVideo",并div将其删除:

$scope.showVideo = false;

使用$scope.$on('onPause', function () { $scope.showVideo = false; alert(Date.now() / 1000); }); 事件切换页面时,它非常有效:

beforeLeave

当应用程序在后台时,Ionic可以做些什么限制?还有其他方法可以在用户离开应用时停止播放视频吗?

1 个答案:

答案 0 :(得分:0)

我使用YouTube iframe API解决了它:

$scope.$on('onPause', function () {
  $('iframe').each(function () {
    this.contentWindow.postMessage('{"event":"command","func":"pauseVideo","args":""}', '*')
  });
});

事实证明,当应用处于后台模式时,我们无法修改DOM,但我们可以与iframe进行通信。