我正在使用针对iOS 4.0+和Android 2.3+的Adobe AIR制作应用。我试图为嵌入式YT视频禁用iOS弹性滚动:当用户按下播放器的IFrame时,整个视频都会翻转,我似乎无法找到解决方法。
我已尝试添加事件侦听器以防止此行为,但它不起作用。
顺便说一句,我知道我无法控制IFrame中发生的事情。一个快速而肮脏的解决方案是将元素直接放在框架上,如透明画布或可以捕捉事件的div。根本不理想,因为用户将无法按下播放器上的按钮。
有任何想法或建议吗?
谢谢!
答案 0 :(得分:0)
我找到了解决方案。
您需要访问UIWebView(StageWebView下的底层iOS实现)才能禁用弹性滚动。
一旦安装了Adobe Native Extension(ANE),它就相对简单了。 (这里有一个很棒的ANE向导/生成器https://github.com/freshplanet/ANE-Wizard)
对于iOS 5,它很简单:webView.scrollView.bounces = NO;
如果你想支持iOS 4,它会变得有点复杂。您没有webView.scrollView的便利,因此您需要手动查找此视图。
处理iOS 4和5的Objective-C代码块将是这样的:
NSString *currSysVer = [[UIDevice currentDevice] systemVersion];
if ([currSysVer compare:@"5.0" options:NSNumericSearch] != NSOrderedAscending) {
// iOS 5 is straightforward
webView.scrollView.bounces = NO;
}
else {
// iOS 4 requires a bit more of work
UIScrollView *scrollView = nil;
for (UIView *subview in [webView subviews])
{
if ([subview isKindOfClass:[UIScrollView class]]) {
scrollView = (UIScrollView *)subview;
}
}
if (scrollView != nil) {
scrollView.bounces = NO;
}
}
希望这有帮助!