Open8

FlutterでiOSのbluetooth設定画面に飛ばす方法

YoshikiAgatsumaYoshikiAgatsuma

app_setting

pubspec.yml
dependencies:
  flutter:
    sdk: flutter
  app_settings: 4.1.8
該当の処理.dart
import 'package:app_settings/app_settings.dart';

// イベント契機に以下処理呼び出すだけ
AppSettings.openBluetoothSettings()

※バージョンは執筆当時の最新

YoshikiAgatsumaYoshikiAgatsuma

こんな感じで実現しました。
Androidはpermission_handlerのopenAppSettings()を呼んでます。
問題なく出来ました👏👏

Flutter側の呼び出し元.dart
if (Platform.isAndroid) {
  await openAppSettings();
} else {
  await BeaconService.methodChannel
      .invokeMethod<String>(
    'openSystemBluetoothSetting',
  );
}
Swift側の呼び出したい処理.swift
channel.setMethodCallHandler({
    (call: FlutterMethodCall, result: @escaping FlutterResult) -> Void in
    if (call.method == "openSystemBluetoothSetting") {
        let url = URL(string: "App-Prefs:root=General")
        let app = UIApplication.shared
        result(app.openURL(url!))
    } else {
        result(FlutterMethodNotImplemented)
    }
})