Как заменить устаревшие методы на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"]); 
  • Откройте внешнюю ссылку в Safari (кордова)
  • Проблема с заставкой экрана, Xcode / iOS 6 / Phonegap
  • Кордова строит ios, но не запускается
  • Плагин камеры Cordova отображает черный экран, когда пользователь отказывает в доступе к камере в iOS
  • Phonegap - открыть / скопировать файл PDF в iBook
  • Создание приложения для iPhone с помощью phonegap на Windows7
  • Медленное поведение pushPage Onsen UI
  • Сохранение изображения PNG или JPG для фотографий в iOS через PhoneGap
  • Кордова 2.3. Телефонная связь. Ошибка белого URL-адреса URL-адреса InAppBrowser.
  • используя livu (lib) с телефонной связью?
  • Как локализовать проекты Кордовы iOS?
  • PhoneC: Разработка iOS проста с помощью XCode, Swift3, UITableView, cocatouch, давайте создадим приложения для iPhone, iPad и Macbook.