2 在Xcode中打开工程,选择Capabilities选项卡,将Background Modes设为On,再勾选Remote notifications即可。
3 这样设置后,在app关闭后,也可以接收到push,而且不会清空消息中心。
1.<code>UIApplication.sharedApplication().isRegisteredForRemoteNotifications()</code>
表示的是 用户是否允许过push 服务
所以当用户允许过一次push之后 这个值返回的就永远为真了
可以发现当你的app被用户允许过推送之后 尽管卸载重装,也不会去请求用户push权限(iOS8)
2.可以通过<code>UIApplication.sharedApplication().currentUserNotificationSettings()</code>
来判断 用户当前对push服务的设置
当<code>setting?.types.rawValue</code>
的值为0时 代表完全禁止了push
这个时候 你就可以在app内提示用户打开push服务了
导航器为基础的d框,可以进行push以及pop的 *** 作。iOS中所有的界面都在最底层的window中,例如我们初始化程序的时候设置window的rootViewController.同理我们可以再创建一个window将其放在屏幕中你想展示的位置即可。
相关代码 //创建蒙层 UIView * view = [[UIView alloc] init]; view.backgroundColor = UIColor.blackColor; view.alpha = 0.2; view.frame = BTUtils.APP_WINDOW.bounds; [BTUtils.APP_WINDOW addSubview:view]; //创建测试导航器以及vc TestWindowViewController * vc=[TestWindowViewController new]; BTNavigationController * nav = [[BTNavigationController alloc] initWithRootViewController:vc]; //创建window,并将window的坐标设置在屏幕底部,设置windowLevel防止获取默认window失败 self.testWindow = [[UIWindow alloc] initWithFrame:CGRectMake(0, BTUtils.SCREEN_H, BTUtils.SCREEN_W, BTUtils.SCREEN_H - 200)]; self.testWindow.windowLevel = UIWindowLevelAlert; self.testWindow .backgroundColor = UIColor.redColor; [self.testWindow setBTCornerRadiusTop:10]; self.testWindow .rootViewController = nav; self.testWindow.hidden = NO; //执行d出的加载动画 [UIView animateWithDuration:.35 animations:^{ self.testWindow .BTTop = 200; }]; //消失的回调处理 __weak ViewController * weakSelf=self; vc.blockSuccess = ^(NSObject * _Nullable obj) { [UIView animateWithDuration:.35 animations:^{ self.testWindow .BTTop = BTUtils.SCREEN_H; } completion:^(BOOL finished) { [view removeFromSuperview]; weakSelf.testWindow.rootViewController = nil; weakSelf.testWindow = nil; }]; };
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)