Я пытаюсь создать приложение для набора часов и подключить его к моему приложению iOS, используя xamarin framework.In HandleWatchKitExtensionRequest Я использую класс MarketRequestHandler для переноса данных из API и отображать его на watchkit. Моя Ошибка: «UIApplicationDelegate в iPhone App никогда не называл ответ() в - [применения UIApplicationDelegate: handleWatchKitExtensionRequest: ответ:]} Класс: {} ObjCRuntime.Class ClassHandle (Foundation.NSError): 0xf09c10 ClassHandle (Foundation.NSObject): 0xf09c10 Код: 2 DebugDescription: «Error Domain = com.apple.watchkit.errors Code = 2 \» UIApplicationDelegate в приложении iPhone никогда не вызывал ответ() в [UIApplicationDelegate application: handleWatchKitExtensionRequest: reply: ] \ "UserInfo = {NSLocalizedDescription = UIApplicationDelegate в приложении iPhone никогда не вызывал ответ() в [UIApplicationDelegate application: handleWatchKitExtensionRequest: reply:]}"«UIApplicationDelegate в приложении для iPhone никогда не назывался reply()» - Xamarin
Это мой код:
public override void HandleWatchKitExtensionRequest
(UIApplication application, NSDictionary userInfo, Action<NSDictionary> reply) {
var json = new JsonParams();
var id="";
nint taskID = UIApplication.SharedApplication.BeginBackgroundTask (() => {
});
new Task (() =>{
MarketRequestHandler mrk = new MarketRequestHandler();
json.ckeys = new string[]{"P"};
json.ids = new string[0];
json.fields = new string[]{
"LastDealTime",
"LastDealDate"
};
json.index = 0;
json.count = 300;
var jsonStr = JsonConvert.SerializeObject (json);
mrk.HandleRequest("market.get",jsonStr, (cb) =>{
id = json.ids[0];
reply (new NSDictionary (
"index", NSNumber.FromInt32 ((int)json.index),
"count", NSNumber.FromInt32((int)json.count),
"rzf", new NSString(id)
));
});
UIApplication.SharedApplication.EndBackgroundTask(taskID);
}).Start();
}
Часы интерфейс
общественного переопределения недействительным Awake (NSObject контекст) {
// Configure interface objects here.
base.Awake (context);
Console.WriteLine ("{0} awake with context", this);
WKInterfaceController.OpenParentApplication (new NSDictionary(), (replyInfo, error) => {
if(error != null) {
Console.WriteLine (error);
return;
}
Console.WriteLine ("parent app responded");
// do something with replyInfo[] dictionary
Label.SetText (replyInfo.Keys[0].ToString() + " " + replyInfo.Values[0].ToString());
label2.SetText(replyInfo.Keys[1].ToString() + " " + replyInfo.Values[1].ToString());
label3.SetText(replyInfo.Keys[2].ToString() + " " + replyInfo.Values[2].ToString());
});
}