gpt4 book ai didi

javascript - UIWebView 中的 OrientationObserver

转载 作者:行者123 更新时间:2023-11-28 23:11:03 25 4
gpt4 key购买 nike

我有以下结构

UIViewController1 --> UIWebView

我从 Documents-Folder 在 WebView 中运行一个本地 HTML 文件。在 HTML 中,我有一个简短的 JavaScript 片段,它通过 orientationObserver 检查界面方向。

UIViewController1 被锁定为横向。

OrientationObserver 总是返回“portrait”,应该返回“landscape”。不知道是什么原因导致返回值错误。

什么会导致 orientationObserver 在这个星座中返回错误的方向?

我真的卡在这里了,我需要返回正确的方向。

感谢任何帮助。

最佳答案

最后,在与 iMac 苦苦思索了四天之后,我找到了一个解决方案。

在 UIWebView 中没有可用的 window.orientation(我想知道为什么!?)。如果 JavaScript 请求该值,它会得到“0”,这意味着方向是“纵向”。

如果将“方向” setter 添加到窗口,则可以解决该问题。

- (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)req navigationType:(UIWebViewNavigationType)navigationType {

[webView stringByEvaluatingJavaScriptFromString:@"window.__defineGetter__('orientation', function(){return 90;});"];

return YES;
}

这在 window 中实现了一个 getter,JavaScript 获取了返回值。如果您希望您的应用程序响应界面方向更改,您可以再次将委托(delegate)中的值设置为正确的值(-90、0、90 或 180)。

关于javascript - UIWebView 中的 OrientationObserver,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8258322/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com