Android 上的 Titanium Appcelerator Video Player 后退按钮
Titanium Appcelerator Video Player Back Button on Android
我是 Titanium 应用程序开发的新手。我正在使用 ListView 制作视频标题列表。当我点击一个项目时,特定的视频播放正常。但是,当我在 Android 中按下后退按钮时,应用程序退出而不是返回到之前的视频列表。我试过 android:back 和 androidback 事件 window 但还是一样。我该如何解决这个问题???顺便说一句,我在 Titanium
中使用 Alloy 框架
index.js
videos.fetch({query: 'select * from '+ videos.config.adapter.collection_name + ' where video_id = '+ vid_id});
var args;
for (var vd=0 ; vd < videos.length; vd++){
var e = JSON.parse(JSON.stringify(videos.at(vd)));
args = {
parent_id : lsn_sub,
video_data : e.video_data
};
console.log(args.video_data);
var mediaview = Alloy.createController("media", args).getView();
mediaview.open();
media.js
var parent_view = args.parent_id;
var vid_media = args.video_data;
console.log("parent source: "+parent_view);
console.log($.vid_media.url);
$.vid_media.url = vid_media ;
$.media.addEventListener('androidback', function(e){
alert("android back");
});
views/media.xml
<Alloy>
<Window class="container">
<VideoPlayer id="vid_media" ns="Ti.Media" ></VideoPlayer>
</Window>
后退按钮退出应用程序,不会返回到上一屏幕。
将您的 秒 window 的模型 属性 设置为真。
<SecondWindow class="container" modal="true"></SecondWindow>
如果您想在用户按 android 回到您的第一个屏幕时关闭应用程序,请在您的第一个 window 上设置 modal 和 exitOnClose true。
<FirstWindow class="container" modal="true" exitOnClose></FirstWindow >
没有为其添加 android:back 事件。
希望对您有所帮助
另一种可能的解决方案
就是取消androidback
事件的bubbling effect,
$.media.addEventListener('androidback', function(e) {
e.cancelBubble = true;
[...Your logic here...]
}
感谢@suraj 和@victor 的大力帮助,但我已经弄明白了。
它不起作用的原因是因为我只在模拟器中测试它,而不是在真实设备上。当我在真实设备上 运行 时,android 的 'back button' 实际上工作正常。它停止了我的视频并返回到上一个屏幕。
我们真的应该在真实设备上进行测试,而不是依赖模拟器。祝你有美好的一天! :)
我是 Titanium 应用程序开发的新手。我正在使用 ListView 制作视频标题列表。当我点击一个项目时,特定的视频播放正常。但是,当我在 Android 中按下后退按钮时,应用程序退出而不是返回到之前的视频列表。我试过 android:back 和 androidback 事件 window 但还是一样。我该如何解决这个问题???顺便说一句,我在 Titanium
中使用 Alloy 框架index.js
videos.fetch({query: 'select * from '+ videos.config.adapter.collection_name + ' where video_id = '+ vid_id});
var args;
for (var vd=0 ; vd < videos.length; vd++){
var e = JSON.parse(JSON.stringify(videos.at(vd)));
args = {
parent_id : lsn_sub,
video_data : e.video_data
};
console.log(args.video_data);
var mediaview = Alloy.createController("media", args).getView();
mediaview.open();
media.js
var parent_view = args.parent_id;
var vid_media = args.video_data;
console.log("parent source: "+parent_view);
console.log($.vid_media.url);
$.vid_media.url = vid_media ;
$.media.addEventListener('androidback', function(e){
alert("android back");
});
views/media.xml
<Alloy>
<Window class="container">
<VideoPlayer id="vid_media" ns="Ti.Media" ></VideoPlayer>
</Window>
后退按钮退出应用程序,不会返回到上一屏幕。
将您的 秒 window 的模型 属性 设置为真。
<SecondWindow class="container" modal="true"></SecondWindow>
如果您想在用户按 android 回到您的第一个屏幕时关闭应用程序,请在您的第一个 window 上设置 modal 和 exitOnClose true。
<FirstWindow class="container" modal="true" exitOnClose></FirstWindow >
没有为其添加 android:back 事件。
希望对您有所帮助
另一种可能的解决方案
就是取消androidback
事件的bubbling effect,
$.media.addEventListener('androidback', function(e) {
e.cancelBubble = true;
[...Your logic here...]
}
感谢@suraj 和@victor 的大力帮助,但我已经弄明白了。
它不起作用的原因是因为我只在模拟器中测试它,而不是在真实设备上。当我在真实设备上 运行 时,android 的 'back button' 实际上工作正常。它停止了我的视频并返回到上一个屏幕。
我们真的应该在真实设备上进行测试,而不是依赖模拟器。祝你有美好的一天! :)