首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Watchkit和WCSession

Watchkit和WCSession
EN

Stack Overflow用户
提问于 2015-10-27 10:42:09
回答 3查看 418关注 0票数 0

在我的一些经验中,我注意到为WatchKit应用程序创建两个或多个接口控制器(IC)时,AppleWatch会在用户滑动到它之前开始加载下一个界面。这可能对系统性能很有用,但也有一些东西让我感到困惑。我所理解的是,每个IC都应该有自己的WCSession来与配对的iPhone通信,但我开始认为这不是真的,因为调试时我看到,如果第一个IC使用sendMessage发送请求,那么第二个IC的didReceiveMessage就会收到答案,而不是第一个IC。我还没有试过,但也许我应该只在第一个IC中创建WCSession,如果我在另一个IC上,应用程序会在第一个IC的didReceiveMessage中启动它。如果这是正确的,当信息到达时,我如何在第二个IC中做些什么?在WatchKit中,我认为我不能使用观察者。有人能给我澄清一下吗?

在互联网上做更多的搜索,我发现:http://www.sneakycrab.com/blog/2015/5/26/wkinterfacecontroller-lifecycle-in-watchos-101 --这是关于IC预加载的确认,在WatchOS 2中也是一样。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2015-10-29 08:41:09

现在,使用全局公共变量,我能够触发正确的会话。

代码语言:javascript
复制
----- myVariables.swift -----
public var showPage1: Bool = false

----- myMainIC.swift -----
override func willActivate() {
    super.willActivate()
    showPage1 = false
}

----- mySecondIC.swift -----
var session: WCSession?
override func WillActivate() {
    super.willActivate()
    // this way I can manage the pre-load
    if (showPage1 == false) {
        showPage1 = true
        return
    }
    // now I can create the session
    if WCSession.isSupported() {
        session = WCSession.defaultSession()
        session.delegate = self
        session.activateSession()
    }
}

由于上述文章中解释的系统预加载,我应该“教”mySecondIC不要在第一次页面被激活时创建会话,因为它是不可见的。

票数 0
EN

Stack Overflow用户

发布于 2016-03-30 06:32:43

您使用的是WCSession.defaultSession,这很好,正如苹果所建议的那样,但这意味着session指向两个WKInterfaceControllers中的同一个对象,因此session.delegate = self通过设计将会话的委托设置为最近加载(未显示)的WKInterfaceController。正如您所发现的,WKInterfaceControllers经常在它们被特别需要之前加载--这是苹果的显式文件

解决这一问题的正确方法是在每个WKInterfaceController的didAppear方法中而不是在willActivate中设置会话委托。这将确保可见接口控制器始终是当前委托。

票数 1
EN

Stack Overflow用户

发布于 2015-11-21 11:09:23

使用transferCurrentComplicationUserInfo发送数据并在watchkit中使用-(WCSession)会话:(WCSession*)会话didReceiveUserInfo:(NSDictionary *)userInfo接收数据

方法。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33365775

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档