Phonegap – 在启用自动定位的同时防止旋转?
我正在重新发布我在Google群组中发现的其他问题,我遇到了类似的问题:
我有一个应用程序需要一切都在纵向,除了它播放video。 在iOS上,当video播放传递给Quicktime播放器时,我希望能够以横向模式播放video。 目前,video仅在Portrait中播放,因为它似乎只是从phonegap应用程序inheritance了肖像。 我的解决方案可能是将Phonegap.plist更改为自动旋转,但之后我希望能够使用javascript来捕获旋转更改并在应用的每个页面中阻止它们,但video播放除外。 这听起来可行吗? 是否有另一种方法可以强制横向定位仅针对应用程序的特定页面? 谢谢!
我在启用自动旋转时尝试了以下操作,但没有成功:
$(document).ready(function(){ document.addEventListener('orientationchange', function(e) { e.preventDefault(); }, false); });
$(window).bind("orientationchange", function(){ var orientation = window.orientation; var new_orientation = (orientation) ? 0 : 180 + orientation; $('body').css({ "-webkit-transform": "rotate(" + new_orientation + "deg)" }); });
这是一种冒险的方式,但认为这是唯一的方法..
您可以选择绑定到窗口resize事件。
$(window).bind("resize", function(){ var orientation = window.orientation; var new_orientation = (orientation) ? 0 : 180 + orientation; $('body').css({ "-webkit-transform": "rotate(" + new_orientation + "deg)" }); });
我刚才写了这个小脚本:它修复了iOS safari中的multiply resize回调错误以及android中的非/ late- / early-trigger(1)orientationchange错误。
(1)有时它在浏览器更改宽度+高度之前有时不会触发? 有线!
if (!(/iphone|ipad/gi).test(navigator.appVersion)) { $(window).unbind("resize").bind("resize", function() { $(window).trigger("orientationchange"); }); }
如果不是iphone或ipad,则触发窗口上的orientationchange事件。
因此,当您将绑定任何函数时,您执行resize会抛出orientationchange。
请参阅: http : //jsfiddle.net/aalouv/sABRQ/1/
- JS确认android webview中的框不起作用
- 使用jQuery确定Android取消/返回滑动(从左向右滑动)
- 关于phonegap的$ .ajax()
- 如何在Android中使用youtube应用打开YouTube链接(使用Dreamweaver CS6)?
- Android – Javascript:如何在webview中执行jquery
- 在真实设备上的cordova app请求中出现net :: ERR_CONNECTION_TIMED_OUT错误
- 如何在jquery mobile中更改默认加载ajax loader gif
- 从Java调用Android的WebView中的jQuery函数?
- 如何在worklight中使用应用程序内的适配器