MethodChannel kaydı
- Flutter kursu
- Uzman seviye
- Ders 17/39
- 4 dk
Plugin'in MethodChannel kaydını öğrenirsin.
MethodChannel kaydı
Bir plugin Dart tarafında registerWith metoduyla başlar. Bu metod bir MethodChannel oluşturur ve setMethodCallHandler ile native'ten gelen çağrıları yakalar. Plugin, uygulama açıldığında otomatik kaydedilir.
class MyPlugin {
static const _channel = MethodChannel('my_plugin');
static void registerWith() {
_channel.setMethodCallHandler(_handle);
}
static Future<dynamic> _handle(MethodCall call) async {
return 'ok';
}
}setMethodCallHandler
setMethodCallHandler, native'ten gelen MethodCall mesajlarını yakalar. Handler, çağrının method adına göre dallanıp sonuç döndürür. Bu, plugin'in Dart-native köprüsüdür.
Uygulama registerWith ile plugin tanımla
MyPlugin sınıfını tanımla: static const _channel = MethodChannel('my_plugin'), static void registerWith() metodu _channel.setMethodCallHandler(_handle) çağırsın, static Future<dynamic> _handle(MethodCall call) async => 'ok' döndürsün. main'de 'kaydedildi' yazdır.
Başlangıç kodu
import 'package:flutter/services.dart';
// MyPlugin sınıfını tanımla
// 'my_plugin' adlı bir MethodChannel static const ata
// kayıt metodu handler ataması yapsın
// çağrı işleyici metodu 'ok' döndürsün
void main() {
// 'kaydedildi' yazdır
}Örnek çözüm
import 'package:flutter/services.dart';
class MyPlugin {
static const _channel = MethodChannel('my_plugin');
static void registerWith() {
_channel.setMethodCallHandler(_handle);
}
static Future<dynamic> _handle(MethodCall call) async => 'ok';
}
void main() {
print('kaydedildi');
}Beklenen çıktı
kaydedildi
Soru ve cevaplar
Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.
1 registerWith metodu ne yapar?
- Veritabanı açar
- Uygulamayı başlatır
- Widget ağacı çizer
- MethodChannel oluşturup çağrı dinleyicisi kaydeder Doğru cevap
Açıklama: registerWith, MethodChannel'ı kurar ve setMethodCallHandler ile native'ten gelen çağrıları dinleyen handler'ı atar.
2 setMethodCallHandler çağrısı
_channel.____(_handle);
_channel.setMethodCallHandler(_handle);
Açıklama: setMethodCallHandler, MethodCall'ları yakalayan handler'ı atar; invokeMethod Dart'tan native'e çağrı yapar, setMessageHandler düşük seviyedir, listen ise stream için kullanılır.
3 MethodChannel kaydı eşleşmeleri
| Kavram | Anlamı |
|---|---|
registerWith |
Plugin kaydı |
MethodChannel |
Çağrı kanalı |
plugin |
Native köprü paketi |
setMethodCallHandler |
Çağrı dinleyici |