我的应用用来NEHotspotConfigurationManager通过Wi-Fi将自身连接到特定设备。该设备充当WPA2接入点。在较旧的iOS版本(iOS 12及更低版本)中,一切正常,但在iPadOS / iOS 13中,每隔一段时间就会断开设备的连接。如何保持连接而不NEHotspotConfiguration永久存储?
我怀疑它与新功能-多个Windows(我的应用程序不支持)有关。原因是在我的NEHotspotConfiguration我将joinOnce标志设置为true(因为永远不要在应用程序外部使用设备的网络)。苹果的文档指出:
如果joinOnce设置为true,则仅在配置了热点的应用程序在前台运行时,热点才会保持配置和连接。发生以下任何事件时,都会断开热点并删除其配置:
- 该应用程序在后台停留超过15秒。
- 设备进入睡眠状态。
- 该应用程序崩溃,退出或被卸载。
- 该应用程序将设备连接到其他Wi-Fi网络。
也许我的应用被错误地识别为前景。
设置joinOnce为false可使应用程序保持连接状态,但这不是可接受的解决方案,因为我的设备不提供Internet连接,因此不能在应用程序外部使用。
这是我应用热点配置的方法:
let hotspotConfiguration = NEHotspotConfiguration(ssid: self.ssid, passphrase: self.passphrase, isWEP: false)
hotspotConfiguration.joinOnce = true
NEHotspotConfigurationManager.shared.apply(hotspotConfiguration) { error in
// connection is successfully applied
// and about 15 seconds later it is lost.
}
Run Code Online (Sandbox Code Playgroud)
我希望将joinOnce标志设置为时保持连接true。
我的应用程序的状态栏样式是,UIStatusBarStyleLightContent并在我的rootViewController中设置为preferredStatusBarStyle.
现在我有一个问题,当SFSafariViewController从我的应用程序内打开时,它继承了状态栏样式,在白色背景上是轻微的,不可见的SFSafariViewController.
有没有办法为SFSafariViewController设置状态栏样式?
PS我尝试子类SFSafariViewController并覆盖此方法,但它没有帮助.
- (UIStatusBarStyle)preferredStatusBarStyle {
return UIStatusBarStyleDefault;
}
Run Code Online (Sandbox Code Playgroud)
更新:
[[UIApplication sharedApplication] setStatusBarStyle:]可以解决问题,但在iOS 9中不推荐使用此方法.
在我的应用程序中,我想在设备旋转(方向更改)的情况下调用CCScene myscene中的某些方法.我禁用了自动旋转(因为我希望它不会发生).
问题是:我想根据我的设备方向改变场景中的重力.我的代码:
-(void) onEnter
{
[super onEnter];
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(notification_OrientationWillChange:) name:UIApplicationWillChangeStatusBarOrientationNotification object:nil];
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(notification_OrientationDidChange:) name:UIApplicationDidChangeStatusBarOrientationNotification object:nil];
}
-(void) onExit
{
//[[NSNotificationCenter defaultCenter] removeObserver:self name:UIApplicationWillChangeStatusBarOrientationNotification object:nil];
//[[NSNotificationCenter defaultCenter] removeObserver:self name:UIApplicationDidChangeStatusBarOrientationNotification object:nil];
}
-(void)notification_OrientationWillChange:(NSNotification*)n
{
orientation = (UIInterfaceOrientation)[[n.userInfo objectForKey:UIApplicationStatusBarOrientationUserInfoKey] intValue];
}
-(void)notification_OrientationDidChange:(NSNotification*)n
{
if (orientation == UIInterfaceOrientationLandscapeLeft) {
b2Vec2 gravity( 0, -10);
world->SetGravity(gravity);
}
if (orientation == UIInterfaceOrientationLandscapeRight) {
b2Vec2 gravity( 0, 10);
world->SetGravity(gravity);
}
}
Run Code Online (Sandbox Code Playgroud)
但在这种情况下,我只能在启用自动旋转的情况下收到通知.(如果禁用,设备实际上不会更改状态栏方向)你能帮助我吗?
在我的应用程序中,我需要允许用户只输入数字.如何让UITextField只接收来自用户的号码?
是否可以AVSystemController_SystemVolumeDidChangeNotification在使用私有API时(在App Store审核过程中)考虑收听NSNotification?
在我的应用程序中,我需要显示和更新当前的音量级别.在按下硬件音量按钮后和MPVolumeView滑块中的音量更改后,应更新音量指示器.
我搜索了解决方案如何获得硬件按钮按下的通知或事件,并找到了许多解决方案.
例如, 按iPhone检测音量键.
和
我喜欢听NSNotificationCenter的解决方案,似乎最简单明了的解决方案是听AVSystemController_SystemVolumeDidChangeNotification(并且工作正常)
但是我确实想知道一件重要的事情.
此通知名称未出现在任何Apple官方文档中,并且有关于此通知用法是否将被视为"使用私有API"的讨论.
据我所知,使用私有API与调用私有方法相关联.这就是为什么使用这个通知密钥不能被视为私有API使用(因为实际上我们使用通知名称作为NSString).
也许有人肯定知道这一点,或者有使用AVSystemController_SystemVolumeDidChangeNotification和app的经验被提交/拒绝?
非常感谢任何信息!
avfoundation iphone-privateapi appstore-approval nsnotificationcenter ios
我想知道IOS的"Contre jour"游戏有多漂亮.特别是我喜欢有弹性的"触角",在2分20秒的视频中显示:http: //www.youtube.com/watch?v = tptdTdJarWLw
我该如何实现这样的效果?
我知道有一种名为"Verlet集成"的技术甚至是用于在cocos2d中绘制绳索的"verlet rope"的实现,但是如何为"触手"精灵制作如此美妙的弹性效果呢?
我有使用box2D的经验,并且可能尝试为此效果实现物理,但是找不到如何使用这种弹性变形来绘制精灵的解决方案.
任何人都可以帮助我或提供一些提示吗?
甚至对技术的解释,这可以帮助我吗?
我有一点opengl的经验,很棒的cocos2d经验,所以我打算用cocos2d.
抱歉英语不好,我希望,你会明白我的问题:)
在我的应用程序中,我想只启用iPhone 4及更新版本和iPod 4g.这是可能的,怎么做?谢谢你的回答
iphone ×4
ios ×3
box2d ×2
objective-c ×2
app-store ×1
avfoundation ×1
cocoa-touch ×1
ios13 ×1
ios9 ×1
ipad ×1
ipados ×1
opengl-es ×1
swift ×1
uikit ×1
uitextfield ×1