Как заменить устаревшие методы наSuccessCallbackString и writeJavascript в Objective-C?

Поскольку я исхожу из фона 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]]; 

Итак, это сработало, но мне все равно нужно заменить toSuccessCallbackString на sendPluginResult , поэтому я искал это:

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

Но как мне evalJS объединить evalJS с sendPluginResult ? В старой версии мне показалось, что pluginResult toSuccessCallbackString просто вернул NSString* но теперь с sendPluginResult похоже, задействован обратный вызов? Как мне управлять этим, чтобы передать результат sendPluginResult в evalJS .

Примечание. Для этого я использую кордову api.

Пожалуйста, будьте осторожны, я еще не писал много Objective-C, и я борюсь с синтаксисом.

One Solution collect form web for “Как заменить устаревшие методы наSuccessCallbackString и writeJavascript в Objective-C?”

Использовать это:

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

если вы использовали CDVCommandStatus_OK в pluginResult, тогда он вызовет обратный вызов успеха, если вы используете CDVCommandStatus_ERROR тогда он вызовет обратный вызов ошибки

Ваш javascript должен быть примерно таким:

 cordova.exec(successCallback, errorCallback, "YourPluginName", "loadHTML",["yourHtmlString"]); 
  • Программно имитировать 2x режим (или двойной масштаб) приложений iPhone на iPad?
  • Video.js Срыв во время загрузки файла на iOS
  • Телефонная игра html5 не воспроизводится
  • Воспроизведение видео Inline в Ionic / Phonegap (webkit-playinginline не работает)
  • Ошибка профиля совпадения сборки iOS - телефонная задержка
  • Разница в телефоне ios app - показать pdf-файл с параметрами печати / электронной почты
  • потерянный фокус ввода текста при отображении клавиатуры - приложение iOS PhoneGap
  • cordova ios resolveLocalFileSystemURL ENCODING_ERR в файле cordova.file.applicationDirectory
  • Как реализовать отслеживание объявлений для мобильных устройств Facebook в проекте Phonegap / Cordova?
  • Ошибка представления / распространения приложения Store "не удалось открыть сеанс ssh"
  • Apache cordova / phonegap, как включить возможности из config.xml
  • PhoneC: Разработка iOS проста с помощью XCode, Swift3, UITableView, cocatouch, давайте создадим приложения для iPhone, iPad и Macbook.