RxBatteryManager 1.0.4

RxBatteryManager 1.0.4

RxSwift 社区RxBateryManager 维护者 维护。



Swift 中的响应式电池管理器

Build Status Swift RxSwift SPM Compatible CocoaPods Compatible Carthage Compatible Platform License

动机

我需要在使用 Rx 开发我的应用时需要一个电池管理器,于是我开始编写这个管理器。有了电池管理器,您可以通过响应式的方式流式传输电池数据。例如,通过订阅电池的临界状态,您可以通过改变应用程序的明暗模式来改善用户体验并减少电池使用。我想与社区分享我开发的这个库。我最大的动力是社区非常友好和乐于助人。希望它是有用的。

🛠要求

  • iOS 9.0+
  • Xcode 11+
  • Swift 5.1+
  • RxSwift 5.1.1+

⚙️安装

Swift 包管理器(需要 Xcode 11)

将包添加到项目设置 -> Swift Packages

CocoaPods

将 RxBatteryManager 依赖项添加到 Podfile 中

# Podfile
use_frameworks!

# replace YOUR_TARGET_NAME with yours
target 'YOUR_TARGET_NAME' do
    pod 'RxBatteryManager',    '~> 1.0'
end

然后运行

$ pod install

👨‍💻用法

import RxBatteryManager

单例 RxBatteryManager

let battery = Battery.monitor

在 AppDelegate 中初始化库

func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {
        
    // Monitoring Battery
    Battery.monitor.start()
    
    return true
}

level - 返回 float

battery.level
    .observeOn(MainScheduler.instance)
    .subscribe(onNext: { [weak self] level in
        guard let self = self else { return }
        print(level)
    }).disposed(by: disposeBag)

state - 在 BatteryState 类型中返回 UIDevice.Enum

battery.state
    .observeOn(MainScheduler.instance)
    .subscribe(onNext: { [weak self] state in
        guard let self = self else { return }
        switch state {
        case .unknown:
            print("unknown")
        case .unplugged:
            print("unplugged")
        case .charging:
            print("charging")
        case .full:
            print("full")
        @unknown default:
            fatalError()
        }
    }).disposed(by: disposeBag)

isLowPowerMode - 返回 bool

battery.isLowPowerMode
    .observeOn(MainScheduler.instance)
    .subscribe(onNext: { [weak self] isLowPowerMode in
        guard let self = self else { return }
        print(isLowPowerMode)
    }).disposed(by: disposeBag)

isLowLevel - 返回 bool

battery.isLowLevel
    .observeOn(MainScheduler.instance)
    .distinctUntilChanged()
    .subscribe(onNext: { [weak self] isLowLevel in
        guard let self = self else { return }
        self.isLowBatteryLabel.text = "\(isLowLevel)"
    }).disposed(by: disposeBag)

isCriticalLevel - 返回 bool

battery.isCriticalLevel
    .observeOn(MainScheduler.instance)
    .distinctUntilChanged()
    .subscribe(onNext: { [weak self] isCriticalLevel in
        guard let self = self else { return }
        self.isCriticalBatteryLabel.text = "\(isCriticalLevel)"
    }).disposed(by: disposeBag)

注意:建议你订阅主线程

👮‍♂️许可协议

RxBatteryManager 以 MIT 许可协议 发布。更多信息请参阅 LICENSE 文件。版权(c)RxSwiftCommunity