gpt4 book ai didi

javascript - 返回值javascript UIWebView

转载 作者:可可西里 更新时间:2023-11-01 02:49:55 24 4
gpt4 key购买 nike

我正在尝试使用 iPhone SDK 获取 javascript 函数的返回值(例如:return "hello")。

在 OS X 上,WebView 方法 -stringByEvaluatingJavaScriptFromString 返回一个包含 js 函数返回值的 NSString,但在 iPhone 上没有返回值。

我该如何解决这个问题?


我找到了一个私有(private)的 UIWebViewDelegate 方法

- (void)webView:(id)fp8 runJavaScriptAlertPanelWithMessage:(id)fp12 initiatedByFrame:(id)fp16

在js脚本中使用alert()函数时调用。因此,我只需调用 alert(myReturValue) 即可获得“返回”值。

这并不能解决我的问题,因为我需要公共(public) SDK 中的一些东西。

最佳答案

返回字符串是最后一个 Javascript 语句的结果。不要不要return放在它前面!

对我有用的最少代码:

UIWebView *webView = [[UIWebView alloc] initWithFrame:CGRectZero];
[self.view addSubview:webView];
NSString *result = [webView stringByEvaluatingJavaScriptFromString:
@"function f(){ return \"hello\"; } f();"];
NSLog(@"result: '%@'", result); // 'hello'
[webView release];

所以我必须将 UIWebView* 添加到 View 中(否则它会在之后崩溃),但不必将任何内容加载到 webview 中。

请注意,最后一条语句只是“f();”,因此返回的字符串将包含 f() 的计算结果。

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

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