آموزش نوشتن کد مخصوص IOS در برنامه نویسی فلاتر
آموزش نوشتن کد مخصوص IOS در برنامه نویسی فلاتر
در این درس از آموزش های برنامه نویسی سایت سورس باران، به آموزش نوشتن کد مخصوص IOS در برنامه نویسی فلاتر خواهیم پرداخت.
دسترسی به کد اختصاصی iOS مشابه کد موجود در سیستم عامل اندروید است با این تفاوت که از زبانهای خاص iOS – Objective-C یا Swift و iOS SDK استفاده می کند. در غیر این صورت ، این مفهوم همان ایده پلتفرم اندروید است.
اجازه دهید ما همان برنامه درس قبل را برای پلتفرم iOS نیز بنویسیم.
- بیایید یک برنامه جدید در Android Studio (macOS) ، flutter_browser_ios_app ایجاد کنیم
- مراحل 2 – 6 را مانند درس قبل دنبال کنید.
- XCode را شروع کرده و روی File → Open کلیک کنید
- پروژه xcode را در فهرست ios پروژه فلاتر انتخاب کنید.
- AppDelegate.m را در مسیر Runner → Runner باز کنید. این شامل کد زیر است
1 2 3 4 5 6 7 8 9 10 11 |
#include "AppDelegate.h" #include "GeneratedPluginRegistrant.h" @implementation AppDelegate - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { // [GeneratedPluginRegistrant registerWithRegistry:self]; // Override point for customization after application launch. return [super application:application didFinishLaunchingWithOptions:launchOptions]; } @end |
- ما یک روش openBrowser برای باز کردن مرورگر با آدرس اینترنتی مشخص اضافه کرده ایم. یک ارگومان به نام url را می پذیرد.
1 2 3 4 5 |
- (void)openBrowser:(NSString *)urlString { NSURL *url = [NSURL URLWithString:urlString]; UIApplication *application = [UIApplication sharedApplication]; [application openURL:url]; } |
- در روش didFinishLaunchingWithOptions ، کنترلر را پیدا کرده و در متغیر کنترلر قرار دهید.
1 |
FlutterViewController* controller = (FlutterViewController*)self.window.rootViewController; |
- در متد didFinishLaunchingWithOptions، کانال مرورگر را به صورت flutterapp.tutorialspoint.com/browse تنظیم کنید:
1 2 3 |
FlutterMethodChannel* browserChannel = [ FlutterMethodChannel methodChannelWithName: @"flutterapp.tutorialspoint.com/browser" binaryMessenger:controller]; |
- در متد didFinishLaunchingWithOptions، کانال مرورگر را به صورت flutterapp.tutorialspoint.com/browse تنظیم کنید.
1 2 3 |
FlutterMethodChannel* browserChannel = [ FlutterMethodChannel methodChannelWithName: @"flutterapp.tutorialspoint.com/browser" binaryMessenger:controller]; |
- یک متغیر ایجاد کنید weakSelf و باکلاس فعلی را تنظیم کنید:
1 |
__weak typeof(self) weakSelf = self; |
- اکنون setMethodCallHandler را پیاده سازی کنید. با مطابقت call.method متد openBrowser فراخوانی کنید. با فراخوانی call.arguments آدرس را دریافت کنید و هنگام فذاخوانی openBrowser آن را منتقل کنید.
1 2 3 4 5 6 |
[browserChannel setMethodCallHandler:^(FlutterMethodCall* call, FlutterResult result) { if ([@"openBrowser" isEqualToString:call.method]) { NSString *url = call.arguments[@"url"]; [weakSelf openBrowser:url]; } else { result(FlutterMethodNotImplemented); } }]; |
- کد کامل به شرح زیر است:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 |
#include "AppDelegate.h" #include "GeneratedPluginRegistrant.h" @implementation AppDelegate - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { // custom code starts FlutterViewController* controller = (FlutterViewController*)self.window.rootViewController; FlutterMethodChannel* browserChannel = [ FlutterMethodChannel methodChannelWithName: @"flutterapp.tutorialspoint.com /browser" binaryMessenger:controller]; __weak typeof(self) weakSelf = self; [browserChannel setMethodCallHandler:^( FlutterMethodCall* call, FlutterResult result) { if ([@"openBrowser" isEqualToString:call.method]) { NSString *url = call.arguments[@"url"]; [weakSelf openBrowser:url]; } else { result(FlutterMethodNotImplemented); } }]; // custom code ends [GeneratedPluginRegistrant registerWithRegistry:self]; // Override point for customization after application launch. return [super application:application didFinishLaunchingWithOptions:launchOptions]; } - (void)openBrowser:(NSString *)urlString { NSURL *url = [NSURL URLWithString:urlString]; UIApplication *application = [UIApplication sharedApplication]; [application openURL:url]; } @end |
تنظیمات پروژه را باز کنید.
به Capabilities رفته و Background Modes. را فعال کنید.
اضافه کردن *Background fetch و Remote Notification**.
اکنون، برنامه را اجرا کنید. این نسخه مشابه نسخه اندروید است اما مرورگر Safari به جای کروم باز می شود.
لیست جلسات قبل آموزش برنامه نویسی فلاتر
- معرفی برنامه نویسی فلاتر
- آموزش نصب فلاتر
- اصول ایجاد یک برنامه فلاتر در Android Studio
- معماری فریم ورک برنامه نویسی فلاتر
- مقدمه ای بر برنامه نویسی دارت
- مقدمه ای بر ویجت ها در برنامه نویسی فلاتر
- آموزش طرح بندی در برنامه نویسی فلاتر
- ژست های حرکتی در برنامه نویسی فلاتر
- مدیریت State در برنامه نویسی فلاتر
- آموزش انیمیشن در برنامه نویسی فلاتر
- آموزش نوشتن کد خاص اندروید در برنامه نویسی فلاتر
دیدگاه شما