[Swift2] 디바이스가 온라인 상태인지 오프라인 상태인지 판단
Xcode의 사용법을 모르는 사람은 열람을 추천합니다여기.
환경 정보
이번 예시 코드는 다음과 같은 환경을 구상했다.
다음 환경에서의 동작도 확인했다.
SystemConfiguration.프레임 추가
시스템 구성.프레임을 추가합니다.
네트워크 상태를 확인하는 함수 만들기
이번 가설은 다양한 장소에서 네트워크 상태를 검사하고 함수를 만든다.
코드 여기 있습니다.
CheckReachability.swiftimport SystemConfiguration
func CheckReachability(host_name:String)->Bool{
let reachability = SCNetworkReachabilityCreateWithName(nil, host_name)!
var flags = SCNetworkReachabilityFlags.ConnectionAutomatic
if !SCNetworkReachabilityGetFlags(reachability, &flags) {
return false
}
let isReachable = (flags.rawValue & UInt32(kSCNetworkFlagsReachable)) != 0
let needsConnection = (flags.rawValue & UInt32(kSCNetworkFlagsConnectionRequired)) != 0
return (isReachable && !needsConnection)
}
SystemConfiguration.프레임을 가져온 다음 함수를 만듭니다.
함수 사용
방금 만든 함수를 사용하면 이렇게 하십시오.
예를 들어 디버그 영역에 표시할 때print(CheckReachability("google.com"))
이런 느낌.
Swift 1.x에서는 println이고 2.0에서는 print입니다.
상기 코드는 구글입니다.com 호스트 연결이 성공했을 때 진짜로 돌아가고, 연결이 실패했을 때 가짜로 돌아갑니다.
마지막
응용편.
AppDelegate.swift는 다음과 같습니다.
AppDelegate.swiftimport UIKit
@UIApplicationMain
class AppDelegate: UIResponder, UIApplicationDelegate {
var window: UIWindow?
func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool {
return true
}
func applicationWillResignActive(application: UIApplication) {
}
func applicationDidEnterBackground(application: UIApplication) {
}
func applicationWillEnterForeground(application: UIApplication) {
}
func applicationDidBecomeActive(application: UIApplication) {
// ここから
if CheckReachability("google.com") {
print("インターネットへの接続が確認されました")
} else {
print("インターネットに接続してください")
let alertController = UIAlertController(title: "インターネット未接続", message: "本アプリはインターネットに\n接続されていない状態で\n使用することは出来ません。", preferredStyle: .Alert)
let defaultAction = UIAlertAction(title: "OK", style: .Default, handler: nil)
alertController.addAction(defaultAction)
self.window?.rootViewController?.presentViewController(alertController, animated: true, completion: nil)
}
// ここまで
}
func applicationWillTerminate(application: UIApplication) {
}
}
이렇게 기술하면
응용 프로그램을 시작할 때마다 인터넷에 연결할지 여부를 판단합니다
인터넷에 연결되면 평소대로 시작합니다.
연결되지 않은 경우
이 응용 프로그램은 인터넷에서
연결되지 않음
사용할 수 없습니다.
문서 레지스트리에 항목을 추가합니다.
네트워크에 연결해야 하는 프로그램을 만들면 설치해야 합니다.
Reference
이 문제에 관하여([Swift2] 디바이스가 온라인 상태인지 오프라인 상태인지 판단), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/treastrain/items/3770c39bd5c821c080c4
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
이번 가설은 다양한 장소에서 네트워크 상태를 검사하고 함수를 만든다.
코드 여기 있습니다.
CheckReachability.swift
import SystemConfiguration
func CheckReachability(host_name:String)->Bool{
let reachability = SCNetworkReachabilityCreateWithName(nil, host_name)!
var flags = SCNetworkReachabilityFlags.ConnectionAutomatic
if !SCNetworkReachabilityGetFlags(reachability, &flags) {
return false
}
let isReachable = (flags.rawValue & UInt32(kSCNetworkFlagsReachable)) != 0
let needsConnection = (flags.rawValue & UInt32(kSCNetworkFlagsConnectionRequired)) != 0
return (isReachable && !needsConnection)
}
SystemConfiguration.프레임을 가져온 다음 함수를 만듭니다.함수 사용
방금 만든 함수를 사용하면 이렇게 하십시오.
예를 들어 디버그 영역에 표시할 때print(CheckReachability("google.com"))
이런 느낌.
Swift 1.x에서는 println이고 2.0에서는 print입니다.
상기 코드는 구글입니다.com 호스트 연결이 성공했을 때 진짜로 돌아가고, 연결이 실패했을 때 가짜로 돌아갑니다.
마지막
응용편.
AppDelegate.swift는 다음과 같습니다.
AppDelegate.swiftimport UIKit
@UIApplicationMain
class AppDelegate: UIResponder, UIApplicationDelegate {
var window: UIWindow?
func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool {
return true
}
func applicationWillResignActive(application: UIApplication) {
}
func applicationDidEnterBackground(application: UIApplication) {
}
func applicationWillEnterForeground(application: UIApplication) {
}
func applicationDidBecomeActive(application: UIApplication) {
// ここから
if CheckReachability("google.com") {
print("インターネットへの接続が確認されました")
} else {
print("インターネットに接続してください")
let alertController = UIAlertController(title: "インターネット未接続", message: "本アプリはインターネットに\n接続されていない状態で\n使用することは出来ません。", preferredStyle: .Alert)
let defaultAction = UIAlertAction(title: "OK", style: .Default, handler: nil)
alertController.addAction(defaultAction)
self.window?.rootViewController?.presentViewController(alertController, animated: true, completion: nil)
}
// ここまで
}
func applicationWillTerminate(application: UIApplication) {
}
}
이렇게 기술하면
응용 프로그램을 시작할 때마다 인터넷에 연결할지 여부를 판단합니다
인터넷에 연결되면 평소대로 시작합니다.
연결되지 않은 경우
이 응용 프로그램은 인터넷에서
연결되지 않음
사용할 수 없습니다.
문서 레지스트리에 항목을 추가합니다.
네트워크에 연결해야 하는 프로그램을 만들면 설치해야 합니다.
Reference
이 문제에 관하여([Swift2] 디바이스가 온라인 상태인지 오프라인 상태인지 판단), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/treastrain/items/3770c39bd5c821c080c4
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
print(CheckReachability("google.com"))
응용편.
AppDelegate.swift는 다음과 같습니다.
AppDelegate.swift
import UIKit
@UIApplicationMain
class AppDelegate: UIResponder, UIApplicationDelegate {
var window: UIWindow?
func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool {
return true
}
func applicationWillResignActive(application: UIApplication) {
}
func applicationDidEnterBackground(application: UIApplication) {
}
func applicationWillEnterForeground(application: UIApplication) {
}
func applicationDidBecomeActive(application: UIApplication) {
// ここから
if CheckReachability("google.com") {
print("インターネットへの接続が確認されました")
} else {
print("インターネットに接続してください")
let alertController = UIAlertController(title: "インターネット未接続", message: "本アプリはインターネットに\n接続されていない状態で\n使用することは出来ません。", preferredStyle: .Alert)
let defaultAction = UIAlertAction(title: "OK", style: .Default, handler: nil)
alertController.addAction(defaultAction)
self.window?.rootViewController?.presentViewController(alertController, animated: true, completion: nil)
}
// ここまで
}
func applicationWillTerminate(application: UIApplication) {
}
}
이렇게 기술하면응용 프로그램을 시작할 때마다 인터넷에 연결할지 여부를 판단합니다
인터넷에 연결되면 평소대로 시작합니다.
연결되지 않은 경우
이 응용 프로그램은 인터넷에서
연결되지 않음
사용할 수 없습니다.
문서 레지스트리에 항목을 추가합니다.
네트워크에 연결해야 하는 프로그램을 만들면 설치해야 합니다.
Reference
이 문제에 관하여([Swift2] 디바이스가 온라인 상태인지 오프라인 상태인지 판단), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/treastrain/items/3770c39bd5c821c080c4텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)