This method is called to let the current process kNow that its
counterpart session’s reachability changed.
所以,似乎我应该得到一个回调.我在手表上将WCSession委托设置为我的班级.手表上的会话接收应用程序上下文的回调.为什么我没有获得可达性回调?
代码如下..
+ (SomeClass *)sharedInstance { static dispatch_once_t pred; static SomeClass *shared = nil; dispatch_once(&pred,^{ shared = [[SomeClass alloc] init]; [Model sharedInstance].delegate = shared; }); return shared;}#pragma mark - setup- (voID)initializeSession { if ([WCSession isSupported]) { WCSession *session = [WCSession defaultSession]; session.delegate = self; [session activateSession]; [self sync]; }}-(BOol) hasValIDWCSession { return ([WCSession isSupported] && [WCSession defaultSession].isReachable);}#pragma mark - WCSessionDelegate- (voID)session:(nonnull WCSession *)session dIDReceiveApplicationContext:(nonnull NSDictionary<Nsstring *,ID> *)applicationContext { NSLog(@"application context received on watch: %@",applicationContext); [[Model sharedInstance] process:applicationContext];}- (voID)sessionWatchStateDIDChange:(WCSession *)session { NSLog(@"wcession state changed on watch");}- (voID)sessionReachabilityDIDChange:(WCSession *)session { NSLog(@"wcsession reachability changed on watch");}解决方法 从Apple Watch应用程序的角度来看,iPhone应用程序不需要运行,以便可以实现.如果iPhone本身已配对且可以访问,则使用手表应用程序中的WCSession发送消息将在后台启动iPhone应用程序.
因此,当iOS应用程序被杀死时,我不希望在监视应用程序上调用sessionReachabilityDIDChange :.这也意味着您的iPhone应用程序应该随时准备在后台启动,并立即激活WCSession,以处理来自监视应用程序的传入请求(类似于某些推送通知等可以启动iOS应用程序) .
但是,从iPhone应用程序的角度来看,只有当“配对且活跃的Apple Watch在范围内并且相关的Watch应用程序在前台运行”时才会认为手表应用程序对应物是可到达的(documentation).
另请注意,当“WCSession对象的配对,watchAppInstalled,complicationEnabled或watchDirectoryURL属性中的值发生更改”时,将调用sessionWatchStateDIDChange :.
总结以上是内存溢出为你收集整理的ios – sessionReachabilityDidChange未在watch上调用全部内容,希望文章能够帮你解决ios – sessionReachabilityDidChange未在watch上调用所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)