带有嵌入式视频的Ionic / Cordova接管Web视图

时间:2015-02-04 14:53:57

标签: angularjs cordova ionic-framework hybrid-mobile-app ionic

在一个简单的Ionic应用程序中,我有一个带有一些嵌入式视频的普通Web视图。这些嵌入的视频包含在oEmbed iframe中。视频效果很好,但几乎每个视频提供商都有一个链接,可以在提供商的页面上观看视频。例如,Youtube总是在Youtube上有一个按钮'。

当我的用户(意外地)点击该链接时,整个Cordova Web视图将被链接的URL接管。而不是我的应用程序,它显示Youtube视频。然后用户永远不会回到我的应用程序,除非关闭并打开应用程序。

我试图:

  • 通过观看$locationChangeStart来阻止导航,这不会起作用,因为它不会触发外部网址(例如Youtube' s)。
  • 使用window.onbeforeupload阻止导航,但这还不够,因为它不能保证用户导航,并且会显示一个丑陋的确认弹出窗口。

有关如何防止从Ionic / Cordova应用程序导航到外部URL的任何其他想法将受到高度赞赏。

3 个答案:

答案 0 :(得分:4)

您应该提供更多信息,如何插入视频?一些代码?

我不使用视频,但我在谷歌地图上遇到了类似的问题,如果用户点击了法律链接,该页面就会触及google合法页面而用户无法返回。

要解决此问题,我安装了inAppBrowser插件并使用此代码打开inAppBrowser窗口内的合法页面

$('#map_canvas').on('click', 'a', function(e){
    e.preventDefault();//you prevent the default click
    window.open($(this).attr('href'), '_blank');//you open the link on the inAppBrowser window
});

因此,您应该检查视频,看看是否可以执行此类操作,阻止链接点击并在inAppBrowser插件上打开

答案 1 :(得分:1)

使用外部播放器会遇到此问题,可能的解决方案是在您的服务器上托管视频并使用一些jquery / angular视频播放器。

答案 2 :(得分:1)

插入

<script type="text/javascript" charset="utf-8" src="cordova.js"></script>
在index.html中

。因此,当您打开链接时,它将使用您的设备浏览器。您可以使用Android后退按钮从设备浏览器返回到您的应用程序。

你应该给你的网址是这样的

var ref = window.open('https://www.******.com/', '_system', 'location=yes');