gpt4 book ai didi

ios - 如何替换 Objective-C 中已弃用的方法 toSuccessCallbackString 和 writeJavascript?

转载 作者:可可西里 更新时间:2023-11-01 03:08:10 24 4
gpt4 key购买 nike

由于我有 Java 背景,所以我不是 Objective-C 专家,因此在修改以下代码时遇到了一些困难:

- (void) loadHTML:(CDVInvokedUrlCommand*)command
{

NSString* callbackId = command.callbackId;
NSArray *arguments = command.arguments;

CDVPluginResult* pluginResult;

if (webView)
{
NSString *stringObtainedFromJavascript = [arguments objectAtIndex:0];
[webView loadHTMLString:stringObtainedFromJavascript baseURL:baseURL];

if (screenNeedsInit) {
[self makeScreenVisible];
}

pluginResult = [CDVPluginResult resultWithStatus:CDVCommandStatus_OK messageAsString: WEBVIEW_OK];
[self writeJavascript: [pluginResult toSuccessCallbackString:callbackId]];
}
else
{
pluginResult = [CDVPluginResult resultWithStatus:CDVCommandStatus_ERROR messageAsString: WEBVIEW_UNAVAILABLE];
[self writeJavascript: [pluginResult toErrorCallbackString:callbackId]];
}

}

编译器提示说,writeJavascripttoErrorCallbackString 都被弃用了,我应该用 evalJSpluginResult< 替换它们.

所以,我的第一步是更改这一行:

[self writeJavascript: [pluginResult toSuccessCallbackString:callbackId]];

像这样:

[self.commandDelegate evalJs: [pluginResult toSuccessCallbackString:callbackId]];

所以,这行得通,但我仍然需要用 sendPluginResult 替换 toSuccessCallbackString,所以我用谷歌搜索了这个:

[self.commandDelegate sendPluginResult:pluginResult callbackId:callbackId];

但是现在如何将 evalJSsendPluginResult 结合起来呢?在旧版本中,在我看来 pluginResult toSuccessCallbackString 只是返回一个 NSString* 但现在 sendPluginResult 似乎涉及回调?我如何管理它以将 sendPluginResult 的结果传递给 evalJS

注意:我为此使用了 cordova api。

请客气点,我还没有写太多 Objective-C,我在语法上遇到了困难。

最佳答案

使用这个:

[self.commandDelegate sendPluginResult:pluginResult callbackId:callbackId];

如果您在 pluginResult 上使用了 CDVCommandStatus_OK,那么它将调用成功回调,如果您使用了 CDVCommandStatus_ERROR,那么它将调用错误回调

你的 javascript 应该是这样的:

cordova.exec(successCallback, errorCallback, "YourPluginName", "loadHTML",["yourHtmlString"]);

关于ios - 如何替换 Objective-C 中已弃用的方法 toSuccessCallbackString 和 writeJavascript?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28850016/

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