MethodChannel nedir?
- Flutter kursu
- İleri seviye
- Ders 46/69
- 4 dk
MethodChannel ile Dart-native köprüü kurmayı öğrenirsin.
MethodChannel nedir?
MethodChannel, Dart kodu ile platforma özgü native kod (Android'de Kotlin/Java, iOS'te Swift/Objective-C) arasında iletişim kurmak için kullanılan bir köprüdür. Kanal adı her iki tarafta aynı olmalıdır; bu ad üzerinden mesajlar gönderilir ve alınır.
const channel = MethodChannel('samples.flutter.dev/battery');Kanal adı
Her MethodChannel benzersiz bir adla oluşturulur. Aynı ad hem Dart tarafında hem native tarafta kullanılır. Genellikle ters alan adı biçiminde yazılır, örneğin samples.flutter.dev/battery. Ad farklıysa mesajlar karşı tarafa ulaşmaz.
const channel = MethodChannel('samples.flutter.dev/battery');Uygulama MethodChannel oluştur
'samples.flutter.dev/battery' adıyla bir MethodChannel oluştur ve 'ok' yazdır.
Başlangıç kodu
class MethodChannel {
final String name;
MethodChannel(this.name);
}
void main() {
// MethodChannel oluştur
// 'ok' yazdır
}Örnek çözüm
class MethodChannel {
final String name;
MethodChannel(this.name);
}
void main() {
const channel = MethodChannel('samples.flutter.dev/battery');
print('ok');
}Beklenen çıktı
ok
Soru ve cevaplar
Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.
1 MethodChannel'ın amacı nedir?
- Veritabanı sorguları çalıştırmak
- Dart ile native platform kodu arasında iletişim kurmak Doğru cevap
- İki widget arasında veri taşımak
- HTTP istekleri göndermek
Açıklama: MethodChannel Dart ile native kod arasında köprü görevi görür; widget veri taşımak, HTTP veya veritabanı ile ilgisi yoktur.
2 MethodChannel oluştur
const channel = ____('samples.flutter.dev/battery');
const channel = MethodChannel('samples.flutter.dev/battery');
Açıklama: MethodChannel oluşturmak için MethodChannel constructor'ı çağrılır ve kanal adı parametre olarak verilir.
3 MethodChannel parçaları
| Kavram | Anlamı |
|---|---|
MethodChannel |
Dart-native köprüsü |
native |
Platforma özgü kod |
channel |
İletişim kanalı |
'samples.flutter.dev/battery' |
Kanal adı |