tôi đã chỉ được thử nghiệm này trên iOS 9 như vậy có lẽ ai đó có thể kiểm tra điều này một thiết bị chạy HĐH cũ.
Chúng tôi làm tất cả mọi thứ bình thường, ngoại trừ một điều, thay vì các thiết lập CBCentralManager
đại biểu trong viewDidLoad
chúng tôi rời khỏi đây cho đến thời điểm chúng ta cần nó, trong trường hợp ví dụ dưới đây tôi gọi đây là một lần tải của tôi WKWebView
đã hoàn tất, và vì mỗi trang chế độ xem web của tôi có khả năng yêu cầu sử dụng Bluetooth tôi đặt số này vào WKWebView didFinishNavigation
.
Swift
var managerBLE: CBCentralManager?
func bluetoothStatus() {
managerBLE = CBCentralManager(delegate: self, queue: nil, options: nil)
}
func webView(webView: WKWebView, didFinishNavigation navigation: WKNavigation!) {
bluetoothStatus()
}
func centralManagerDidUpdateState(central: CBCentralManager) {
switch managerBLE!.state
{
case CBCentralManagerState.PoweredOff:
print("Powered Off")
case CBCentralManagerState.PoweredOn:
print("Powered On")
case CBCentralManagerState.Unsupported:
print("Unsupported")
case CBCentralManagerState.Resetting:
print("Resetting")
fallthrough
case CBCentralManagerState.Unauthorized:
print("Unauthorized")
case CBCentralManagerState.Unknown:
print("Unknown")
default:
break;
}
}
Khoảnh khắc đại biểu được thiết lập trong vòng bluetoothStatus()
bạn sẽ thấy ngọn lửa thay đổi trạng thái.
Thông báo bật Bluetooth dường như chỉ muốn được gọi là ngay tại tải ban đầu của ứng dụng của bạn, làm nó theo cách này có nghĩa là bạn chỉ nhận được những gì bạn muốn từ centralManagerDidUpdateState
Nguồn
2016-02-24 13:30:57
Tùy chọn quét ngoại vi là: CBCentralManagerScanOptionAllowDuplicatesKey; CBCentralManagerScanOptionSolicitedServiceUUIDsKey; [liên kết] (https://developer.apple.com/library/ios/documentation/CoreBluetooth/Reference/CBCentralManager_Class/translated_content/CBCentralManager.html#//apple_ref/doc/constant_group/Peripheral_Scanning_Options) Vì vậy, hãy gửi từ điển tùy chọn bạn đang gửi không tạo sự khác biệt trong scanForPeripheralWithServices. Chỉ cần nó trong khởi tạo – shim
Nó không hoạt động trong iOS 5 – Salim
Không hoạt động trong iOS 8+ –