Как интегрировать Siri во Flutter с помощью MethodChannels?IOS

Программируем под IOS
Ответить
Anonymous
 Как интегрировать Siri во Flutter с помощью MethodChannels?

Сообщение Anonymous »

Я хочу интегрировать Sirikit в свое приложение Flutter. Поэтому мне нужно установить MethodChannel для связи между хостом и клиентом. Я хочу, чтобы сторона iOS вызывала функцию флаттера, и этот ответ был бы ответом Сири.
Это сторона флаттера:

Код: Выделить всё

void nativeFunc() {
const platform = const MethodChannel("flutter.siri");

Future _handleMethod(MethodCall call) async {
if (call.method == "message") {
return api_request("Physics", call.arguments, 50);
}
}

platform.setMethodCallHandler(_handleMethod);
}
Затем мне нужно указать методChannel на стороне iOS:

Код: Выделить всё

//AppDelegate.swift
import UIKit
import Flutter

@UIApplicationMain
@objc class AppDelegate: FlutterAppDelegate {
override func application(
_ application: UIApplication,
didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?
) -> Bool {
let controller : FlutterViewController = window?.rootViewController as! FlutterViewController
let methodChannel = FlutterMethodChannel(name:"flutter.siri")

GeneratedPluginRegistrant.register(with: self)
return super.application(application, didFinishLaunchingWithOptions: launchOptions)
}
}

//IntentHandler.swift
func handle(intent: INSendMessageIntent, completion: @escaping (INSendMessageIntentResponse) -> Void) {
// Implement your application logic to send a message here.

let userActivity = NSUserActivity(activityType: NSStringFromClass(INSendMessageIntent.self))
let response = methodChannel.invokeMethod()//this should invoke the MethodChannel-function from Flutter

completion(response)
}
Я не iOS-разработчик, поэтому понятия не имею, как это сделать на самом деле. На данный момент проблема заключается в том, что файл IntentHandler.swift не имеет доступа к данным канала метода, поскольку он был объявлен в другом файле. Как мой файл Intenthandler может вызвать метод flutter и ответить Siri?


Подробнее здесь: https://stackoverflow.com/questions/678 ... odchannels
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «IOS»