Ben bir Java arka plandan geliyorum beri bir Objective-C uzman değilim ve bu nedenle aşağıdaki kodu değiştirmek için biraz mücadele:Kullanımdan kaldırılan yöntemleri Objectuccess-C'ye nasıl SuccessCallbackString ve writeJavascript olarak değiştiririm?
- (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]];
}
}
derleyici de o, writeJavascript
yanı toErrorCallbackString
olarak önerilmemektedir şikayet ve Bunları evalJS
ve pluginResult
ile değiştirmeliyim. Böyle
[self writeJavascript: [pluginResult toSuccessCallbackString:callbackId]];
:
Yani, benim ilk adım, bu hat değiştirmek oldu Yani[self.commandDelegate evalJs: [pluginResult toSuccessCallbackString:callbackId]];
, bu çalıştı, ama yine de sendPluginResult
ile toSuccessCallbackString
değiştirmeniz gerekiyor, bu yüzden googled Bu kadar:
[self.commandDelegate sendPluginResult:pluginResult callbackId:callbackId];
Ama nasıl evalJS
birleştirmek do şimdi sendPluginResult
ile? Eski sürümde bana pluginResult toSuccessCallbackString
sadece NSString*
döndü, ancak şimdi sendPluginResult
ile bir geri arama gibi görünüyor görünüyordu? sendPluginResult
sonucunu evalJS
'a iletmek için bunu nasıl yönetirim.
Not: Bunun için cordova API'sini kullanıyorum.
Lütfen nazik ol, çok fazla Objective-C yazmadım ve sözdizimiyle mücadele ediyorum.
[self.commandDelegate evalJs: javascriptString] öğesini arayabileceğimiz geri arama yöntemi nedir; [PluginResult toErrorCallbackString: command.callbackId] 'yi [self.commandDelegate sendPluginResult: pluginResult callbackId: callbackId] olarak değiştirdim; Ama hangi yöntemde evalJs yöntemini çağırmak için Javascript String'i alacağım. Şimdiden teşekkürler. –
Soru, kullanımdan kaldırılan 'writeJavascript'in nasıl değiştirileceğiydi ve soru, soru kullanım durumu için' sendPluginResult' kullanmaktır. EvalJs kullanmak istiyorsanız, kullanım durumunuz farklı olabilir. Daha fazla bilgi sağlayan yeni bir soru oluşturabilir misiniz? – jcesarmobile
Oh oki .. GöndermePluginResult toErrorCallbackId ve toSuccessCallbackId ile değiştirmektir ve writeJavascript yöntemi evalJs yöntemiyle değiştirilmelidir. Eğer sendPluginResult işini yaparsa, o zaman ihtiyacım olan şey budur .. lütfen anlayışım yanlışsa lütfen beni düzeltin. Teşekkürler! –