ios – sessionReachabilityDidChange未在watch上调用

ios – sessionReachabilityDidChange未在watch上调用,第1张

概述我想让我的手表应用程序响应被杀死的手机上的父应用程序.当监视应用程序正在运行且手机应用程序被终止时,我无法从sessionReachabilityDidChange或sessionWatchStateDidChange回调.基于苹果文档: This method is called to let the current process know that its counterpart sessi 我想让我的手表应用程序响应被杀死的手机上的父应用程序.当监视应用程序正在运行且手机应用程序被终止时,我无法从sessionReachabilityDIDChange或sessionWatchStateDIDChange回调.基于苹果文档:

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上调用所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1070701.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-26
下一篇 2022-05-26

发表评论

登录后才能评论

评论列表(0条)

保存