在一个简单的Ionic应用程序中,我有一个带有一些嵌入式视频的普通Web视图。这些嵌入的视频包含在oEmbed iframe中。视频效果很好,但几乎每个视频提供商都有一个链接,可以在提供商的页面上观看视频。例如,Youtube总是在Youtube上有一个按钮'。
当我的用户(意外地)点击该链接时,整个Cordova Web视图将被链接的URL接管。而不是我的应用程序,它显示Youtube视频。然后用户永远不会回到我的应用程序,除非关闭并打开应用程序。
我试图:
$locationChangeStart
来阻止导航,这不会起作用,因为它不会触发外部网址(例如Youtube' s)。window.onbeforeupload
阻止导航,但这还不够,因为它不能保证用户导航,并且会显示一个丑陋的确认弹出窗口。有关如何防止从Ionic / Cordova应用程序导航到外部URL的任何其他想法将受到高度赞赏。
答案 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');