gpt4 book ai didi

javascript - 在方向改变时从 Objective C 调用 javascript 函数

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

首先我想说我是一个绝对的 Objective C 新手。我一直在到处寻找解决方案,但不知何故我似乎无法让它发挥作用。

我想要的只是在发生方向更改事件时从 Objective C 运行 Javascript 函数,看看这是如何在方向更改动画开始之前执行 Javascript 的唯一方法。

我已经能够获取 NSLog 来显示方向何时发生变化,但无论我尝试什么,我都无法执行任何 Javascript。甚至不是console.log()或alert(),更不用说我想要触发的实际函数了。

有人可以帮我节省另一个下午的反复试验吗?

<小时/>

已解决

将其放入 didFinishLaunchingWithOptions (AppDelegate.m) 中:

    [[NSNotificationCenter defaultCenter] addObserver: self
selector: @selector(orientationDidChange:)
name: UIApplicationDidChangeStatusBarOrientationNotification
object: nil];

下面就是这个

- (void) orientationDidChange: (NSNotification *) note
{
[self.viewController.webView stringByEvaluatingJavaScriptFromString:@"hideContentsDuringOrientationChange();"];
}

最佳答案

你应该能够做到这一点:

- (void)willRotateToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation duration:(NSTimeInterval)duration {
[(UIWebView *)self.visibleViewController.view stringByEvaluatingJavaScriptFromString:@"someGlobalJSFunction();"];
}

您对 UIWebView 的引用可能需要根据项目的设置方式进行更改。

您可以在旋转完成后对事件使用 didRotateFromInterfaceOrientation。不过,我发现有时 JS 重绘会提前触发。我通过在它调用的 JS 函数中设置一个短暂的超时来解决这个问题。

关于javascript - 在方向改变时从 Objective C 调用 javascript 函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15070693/

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