Macを持っていないのでiPadのSwift PlaygroundsでiPhone用のアプリを作っています。
MacのXcodeなしで、アプリの設定した動作中はiPhoneの画面がロック(スリープ)しないようにしたいのですが可能でしょうか?
色々なサイトで調べましたところ
UIApplication.shared.isIdleTimerDisabled = true
をコード内にいれるという事ですが、どこにいれてもエラーがでてしまいます。
本当は、画面が完全に暗転した状態(もしくはアプリがバックグランドで動作中)でも止まる事なく動くものを作りたいのですが、それはさすがにXcodeなしでは無理な気がしております(ですよね?)
なので、スクリーンの輝度をギリギリまで暗くした状態でディバイスがロック(スリープ)しないようにしたいです。
下記のコードをXcodeで作れば問題ないというのであれば、やはりiPadのSwift Playgroundsの問題だと思うのですが、Xcode(Mac)を持っていないので確認出来ません。
ずうずうしくて大変恐縮ですが、Xcodeをお持ちの方に下記のプログラムでエラーが生じないかを調べていただきたいです。
宜しくお願いします。
//iPadOS15, Swift5.3 import PlaygroundSupport import SwiftUI import UIKit var prevScreenBrightness = UIScreen.main.brightness var myToggle = false struct ContentView: View { @State var myString = "It's bright." var body: some View { VStack { Button(action: { if myToggle == false { myToggle = true myString = "It's dark." UIScreen.main.brightness = 0.0 UIApplication.shared.isIdleTimerDisabled = true // 上記コードに、「'shared' is unavailable in application extensions for iOS: Use view controller based solutions where appropriate instead.」というエラーが出ます。 } else { myToggle = false myString = "It's bright." UIScreen.main.brightness = prevScreenBrightness UIApplication.shared.isIdleTimerDisabled = false // 上記コードに、「'shared' is unavailable in application extensions for iOS: Use view controller based solutions where appropriate instead.」というエラーが出ます。 } }) { Text("Button") .padding() } Text(myString) } } } PlaygroundPage.current.setLiveView(ContentView())
あなたの回答
tips
プレビュー