gpt4 book ai didi

ios - 我无法从不同类上的函数调用 javascript

转载 作者:行者123 更新时间:2023-11-29 03:26:03 24 4
gpt4 key购买 nike

我有一个项目,我尝试从 Objective-C 类调用一些 JavaScript。如果一切都在一个类中,它就可以工作(我可以调用脚本)。

但是,当我在组合中引入另一个类时,我似乎无法调用第一个类的 WebView 的 JavaScript。我以为我没有正确调用该类,但我让我的 invokeJS 方法只是调出一个 Objective-C AlertView 并且它起作用了。所以我知道它正在调用该方法,但是如果我从第二个类调用该方法,JavaScript 似乎不起作用。

   [t invokeJS];

在我的其他类(class)

 -(void)invokeJS
{
[self.webView stringByEvaluatingJavaScriptFromString:@"dan()"];
}

是否不允许我对另一个类的 View 调用操作?

我应该注意到这是一个 phonegap 应用程序,所以这就是设置相当尴尬的原因。

我有一个模态 Controller ,当我关闭 Controller 时,我想在其中调用 JavaScript。

我试图从我的 modalViewController 类直接访问 webview,但这似乎也不起作用

    [t.webView stringByEvaluatingJavaScriptFromString:@"dan()"];

非常感谢任何帮助,谢谢。

 STARImageController *modalView = [[STARImageController alloc] initWithNibName:@"STARImageController" bundle:nil];
modalView.myImage = fileContents;
[self.viewController presentModalViewController:modalView animated:YES];

上面的代码来 self 的 toast 类 (t),它提供了模态视图 Controller 。可能值得注意的是,我的 Toast 类不是 View ,而是 CordovaPlugin 的子类,但我不确定它是否重要......

最佳答案

如果您想从模态视图 Controller 执行 [self.webView stringByEvaluatingJavaScriptFromString:@"dan()"];,请尝试以下操作:

STARImageController *modalView = [[STARImageController alloc]   
initWithNibName:@"STARImageController" bundle:nil];
modalView.webView = self.webView; // <-- this line
modalView.myImage = fileContents;
[self.viewController presentModalViewController:modalView animated:YES];

这里的假设是你想要运行 JavaScript 的 webView 在它所在的 ViewController 上被称为 self.webView ,并且你的 modalView重新呈现有一个名为 webViewUIWebView 属性。

现在,modalView.webView 是对原始 webview 的引用,因此从 调用 [self.webView stringByEvaluatingJavaScriptFromString:@"dan()"]; >modalView 实际上会在原始 View 中的 webView 上调用它。

关于ios - 我无法从不同类上的函数调用 javascript,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20448902/

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