CodeBlanks Logo Icon CodeBlanks

MethodChannel kaydı

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

main.dart
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

main.dart
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ı

Soru
_channel.____(_handle);
Cevap
_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

Uzman seviye bölümündeki tüm dersler