小编Ale*_*nko的帖子

iPadOS:通过NEHotspotConfiguration连接的网络在一段时间后断开连接

我的应用用来NEHotspotConfigurationManager通过Wi-Fi将自身连接到特定设备。该设备充当WPA2接入点。在较旧的iOS版本(iOS 12及更低版本)中,一切正常,但在iPadOS / iOS 13中,每隔一段时间就会断开设备的连接。如何保持连接而不NEHotspotConfiguration永久存储?

我怀疑它与新功能-多个Windows(我的应用程序不支持)有关。原因是在我的NEHotspotConfiguration我将joinOnce标志设置为true(因为永远不要在应用程序外部使用设备的网络)。苹果的文档指出:

如果joinOnce设置为true,则仅在配置了热点的应用程序在前台运行时,热点才会保持配置和连接。发生以下任何事件时,都会断开热点并删除其配置:

  • 该应用程序在后台停留超过15秒。
  • 设备进入睡眠状态。
  • 该应用程序崩溃,退出或被卸载。
  • 该应用程序将设备连接到其他Wi-Fi网络。

也许我的应用被错误地识别为前景。

设置joinOncefalse可使应用程序保持连接状态,但这不是可接受的解决方案,因为我的设备不提供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

ios swift networkextension ios13 ipados

17
推荐指数
1
解决办法
498
查看次数

SFSafariViewController状态栏样式

我的应用程序的状态栏样式是,UIStatusBarStyleLightContent并在我的rootViewController中设置为preferredStatusBarStyle.

现在我有一个问题,当SFSafariViewController从我的应用程序内打开时,它继承了状态栏样式,在白色背景上是轻微的,不可见的SFSafariViewController.

有没有办法为SFSafariViewController设置状态栏样式?

PS我尝试子类SFSafariViewController并覆盖此方法,但它没有帮助.

- (UIStatusBarStyle)preferredStatusBarStyle {
    return UIStatusBarStyleDefault;
}
Run Code Online (Sandbox Code Playgroud)

更新:

[[UIApplication sharedApplication] setStatusBarStyle:]可以解决问题,但在iOS 9中不推荐使用此方法.

iphone cocoa-touch objective-c ios9

16
推荐指数
3
解决办法
3983
查看次数

如何在设备方向事件(不是界面方向)上订阅自己?

在我的应用程序中,我想在设备旋转(方向更改)的情况下调用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)

但在这种情况下,我只能在启用自动旋转的情况下收到通知.(如果禁用,设备实际上不会更改状态栏方向)你能帮助我吗?

iphone box2d cocos2d-iphone

13
推荐指数
1
解决办法
7856
查看次数

如何在UITextField中禁用字母字符?

在我的应用程序中,我需要允许用户只输入数字.如何让UITextField只接收来自用户的号码?

iphone objective-c uitextfield uikit ipad

9
推荐指数
2
解决办法
1万
查看次数

iOS检测系统音量级别更改.私有API与否?AVSystemController_SystemVolumeDidChangeNotification

是否可以AVSystemController_SystemVolumeDidChangeNotification在使用私有API时(在App Store审核过程中)考虑收听NSNotification?

在我的应用程序中,我需要显示和更新当前的音量级别.在按下硬件音量按钮后和MPVolumeView滑块中的音量更改后,应更新音量指示器.

我搜索了解决方案如何获得硬件按钮按下的通知或事件,并找到了许多解决方案.

例如, 按iPhone检测音量键.

如何在iOS上获得音量级别和音量更改通知?

我喜欢听NSNotificationCenter的解决方案,似乎最简单明了的解决方案是听AVSystemController_SystemVolumeDidChangeNotification(并且工作正常)

但是我确实想知道一件重要的事情.

此通知名称未出现在任何Apple官方文档中,并且有关于此通知用法是否将被视为"使用私有API"的讨论.

据我所知,使用私有API与调用私有方法相关联.这就是为什么使用这个通知密钥不能被视为私有API使用(因为实际上我们使用通知名称作为NSString).

也许有人肯定知道这一点,或者有使用AVSystemController_SystemVolumeDidChangeNotification和app的经验被提交/拒绝?

非常感谢任何信息!

avfoundation iphone-privateapi appstore-approval nsnotificationcenter ios

9
推荐指数
1
解决办法
6807
查看次数

Contre Jour中的弹性触手等图形效果

我想知道IOS的"Contre jour"游戏有多漂亮.特别是我喜欢有弹性的"触角",在2分20秒的视频中显示:http: //www.youtube.com/watch?v = tptdTdJarWLw

我该如何实现这样的效果?

我知道有一种名为"Verlet集成"的技术甚至是用于在cocos2d中绘制绳索的"verlet rope"的实现,但是如何为"触手"精灵制作如此美妙的弹性效果呢?

我有使用box2D的经验,并且可能尝试为此效果实现物理,但是找不到如何使用这种弹性变形来绘制精灵的解决方案.

任何人都可以帮助我或提供一些提示吗?

甚至对技术的解释,这可以帮助我吗?

我有一点opengl的经验,很棒的cocos2d经验,所以我打算用cocos2d.

抱歉英语不好,我希望,你会明白我的问题:)

opengl-es box2d cocos2d-iphone ios

6
推荐指数
1
解决办法
1370
查看次数

是否可以为应用禁用目标设备?

在我的应用程序中,我想只启用iPhone 4及更新版本和iPod 4g.这是可能的,怎么做?谢谢你的回答

iphone app-store

2
推荐指数
1
解决办法
251
查看次数