Apple Watch App:来自iPhone的handleWatchKitExtensionRequest中的特定函数调用

时间:2015-08-19 06:18:38

标签: ios objective-c iphone apple-watch

如果请求来自数据的监视工具包扩展程序,我们是否可以将<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context" xmlns:cache="http://www.springframework.org/schema/cache" xmlns:aop="http://www.springframework.org/schema/aop" xsi:schemaLocation="http://www.springframework.org/schema/cache http://www.springframework.org/schema/cache/spring-cache.xsd http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-3.2.xsd http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.2.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.2.xsd"> <aop:aspectj-autoproxy proxy-target-class="true"/> <cache:annotation-driven/> ... app中的任何函数调用iphone方法,并将回复的数据handleWatchKitExtensionRequest传递给我们如果我们可以调用,请让我知道做同样的程序。

请帮助我实现这一目标。

提前致谢!!!

1 个答案:

答案 0 :(得分:0)

我在我的应用中制作了这些东西。 (但未通过回复)

在Watch Kit Extention中 在一个按钮点击事件我写了下面的代码

    NSMutableDictionary *callDict = [[NSMutableDictionary alloc] init];
    [callDict setObject:@"SendPushLocation" forKey:@"type"];
    [callDict setObject:contactDetail forKey:@"data"];

    [WKInterfaceController openParentApplication:callDict reply:^(NSDictionary *replyInfo, NSError *error) {


    }];

然后在appDelegate.m中 添加此代码以实现您的目标。

- (void)application:(UIApplication *)application handleWatchKitExtensionRequest:(NSDictionary *)userInfo reply:(void(^)(NSDictionary *replyInfo))reply {

    storyboard = [UIStoryboard storyboardWithName:@"Main" bundle:nil];
    ContactListTableViewController *contactTableVC = [storyboard instantiateViewControllerWithIdentifier:@"ContactListTableVC"];
    [contactTableVC viewDidLoadCopy];
    if ([userInfo[@"type"] isEqualToString:@"SendPush"]) {

        [contactTableVC sendPushFromWatchKit:userInfo[@"data"] withSendLocation:NO];

    } else if([userInfo[@"type"] isEqualToString:@"SendPushLocation"]) {

        [contactTableVC sendPushFromWatchKit:userInfo[@"data"] withSendLocation:YES];

    } else if([userInfo[@"type"] isEqualToString:@"LocalNotification"]) {

        [contactTableVC scheduleLocalNotification:userInfo[@"data"]];

    } else if([userInfo[@"type"] isEqualToString:@"ReScheduleLocalNotification"]) {

        [contactTableVC reScheduleLocalNotification:userInfo[@"data"]];

    }
}

我不需要回复,所以我没有尝试过。