ios – 如何在Objective-C中将已弃用的方法替换为SuccessCallbackString和writeJavascript?

由于我来自 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]];    
    }

}

编译器抱怨writeJavascript和toErrorCallbackString都被弃用了,我应该用evalJS和pluginResult替换它们.

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

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

像这样:

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

所以,这个工作,但我仍然需要用sendPluginResult替换toSuccessCallbackString,所以我搜索了这个:

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

但是我如何将evalJS与sendPluginResult结合起来呢?在旧版本中,我认为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"]);

相关文章

背景 前端时间产品经理决定使用百度统计,使得 工程B 中原统计sdk-友盟统计,需要被去除。之前尝试去除...
结论: alloc负责分配内存和创建对象对应的isa指针; init只是返回alloc生成的对象。 所以alloc后,多次...
更新 如果UI愿意把启动图切割成n份,按一定约束在launchscreen.storyboard中进行排版,启动图效果会更好...
最近在看一本书《Effective OC 2.0》,今天看到有个tip是OC适中循环各自优劣性,作者最终推荐此块循环。...
// // ViewController.m // paintCodeTestOC //gif // Created by LongMa on 2019/7/25. // #import &a...
背景介绍 一般情况下,出于省电、权限、合理性等因素考虑,给人的感觉是很多奇怪的需求安卓可以实现,但...