Method Chanel در فلاتر چیست؟
- 1403/10/10
Method Channel در فلاتر، یک راه ارتباطی بین بخش Dart (فلاتر) و بخش Native (اندروید یا iOS) اپلیکیشن است. این کانال به شما امکان میدهد تا از امکانات و کتابخانههای موجود در پلتفرمهای بومی استفاده کنید که در فلاتر بهصورت پیشفرض در دسترس نیستند.
ارتباط در Method Channel از طریق ارسال پیام بین Dart و کد بومی (Native) انجام میشود. این پیامها شامل متدهای فراخوانی شده و پارامترهای آنها هستند.
ابتدا یک کانال ارتباطی ایجاد کنید و متد موردنظر را فراخوانی کنید:
import 'package:flutter/services.dart';
class NativeService {
static const platform = MethodChannel('com.example.myapp/channel');
static Future<String> getBatteryLevel() async {
try {
final String batteryLevel = await platform.invokeMethod('getBatteryLevel');
return "Battery Level: $batteryLevel%";
} on PlatformException catch (e) {
return "Failed to get battery level: ${e.message}";
}
}
}
در بخش Native (اندروید)، متد فراخوانیشده را پیادهسازی کنید:
import io.flutter.embedding.engine.FlutterEngine;
import io.flutter.plugin.common.MethodChannel;
public class MainActivity extends FlutterActivity {
private static final String CHANNEL = "com.example.myapp/channel";
@Override
public void configureFlutterEngine(@NonNull FlutterEngine flutterEngine) {
new MethodChannel(flutterEngine.getDartExecutor().getBinaryMessenger(), CHANNEL)
.setMethodCallHandler(
(call, result) -> {
if (call.method.equals("getBatteryLevel")) {
int batteryLevel = getBatteryLevel();
if (batteryLevel != -1) {
result.success(String.valueOf(batteryLevel));
} else {
result.error("UNAVAILABLE", "Battery level not available.", null);
}
} else {
result.notImplemented();
}
}
);
}
private int getBatteryLevel() {
// Example: Retrieve battery level
return 75; // مقدار فرضی
}
}
در فلاتر متد پیادهسازیشده در اندروید را فراخوانی کنید:
ElevatedButton(
onPressed: () async {
String batteryLevel = await NativeService.getBatteryLevel();
print(batteryLevel);
},
child: Text("Get Battery Level"),
);
Method Channel یکی از ابزارهای مهم فلاتر برای ترکیب امکانات بومی اندروید و iOS با محیط Dart است. این ویژگی به توسعهدهندگان کمک میکند تا اپلیکیشنهایی بسازند که هم از رابط کاربری قدرتمند فلاتر و هم از قابلیتهای بومی پلتفرم بهرهمند باشند.
رایگان ثبت نام کنید و اولین نفری باشید که از پست های جدید مطلع می شوید.