آموزش نوشتن کد مخصوص IOS در برنامه نویسی فلاتر

3 سال پیش

آموزش نوشتن کد مخصوص IOS در برنامه نویسی فلاتر

در این درس از آموزش های برنامه نویسی سایت سورس باران، به آموزش نوشتن کد مخصوص IOS در برنامه نویسی فلاتر خواهیم پرداخت.

دسترسی به کد اختصاصی iOS مشابه کد موجود در سیستم عامل اندروید است با این تفاوت که از زبانهای خاص iOS – Objective-C یا Swift و iOS SDK استفاده می کند. در غیر این صورت ، این مفهوم همان ایده پلتفرم اندروید است.

اجازه دهید ما همان برنامه درس قبل را برای پلتفرم iOS نیز بنویسیم.

  • بیایید یک برنامه جدید در Android Studio (macOS) ، flutter_browser_ios_app ایجاد کنیم
  • مراحل ۲ – ۶ را مانند درس قبل دنبال کنید.
  • XCode را شروع کرده و روی File → Open کلیک کنید
  • پروژه xcode را در فهرست ios پروژه فلاتر انتخاب کنید.
  • AppDelegate.m را در مسیر Runner → Runner باز کنید. این شامل کد زیر است
#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  را می پذیرد.
- (void)openBrowser:(NSString *)urlString { 
   NSURL *url = [NSURL URLWithString:urlString]; 
   UIApplication *application = [UIApplication sharedApplication]; 
   [application openURL:url]; 
}

 

  • در روش didFinishLaunchingWithOptions ، کنترلر را پیدا کرده و در متغیر کنترلر قرار دهید.
FlutterViewController* controller = (FlutterViewController*)self.window.rootViewController;

 

  • در متد didFinishLaunchingWithOptions، کانال مرورگر را به صورت flutterapp.tutorialspoint.com/browse تنظیم کنید:
FlutterMethodChannel* browserChannel = [
   FlutterMethodChannel methodChannelWithName:
   @"flutterapp.tutorialspoint.com/browser" binaryMessenger:controller];

 

  • در متد didFinishLaunchingWithOptions، کانال مرورگر را به صورت flutterapp.tutorialspoint.com/browse تنظیم کنید.
FlutterMethodChannel* browserChannel = [
   FlutterMethodChannel methodChannelWithName:
   @"flutterapp.tutorialspoint.com/browser" binaryMessenger:controller];

 

  • یک متغیر ایجاد کنید weakSelf و باکلاس فعلی را تنظیم کنید:
__weak typeof(self) weakSelf = self;

 

  • اکنون setMethodCallHandler را پیاده سازی کنید. با مطابقت call.method  متد openBrowser فراخوانی کنید. با فراخوانی call.arguments آدرس را دریافت کنید و هنگام فذاخوانی openBrowser آن را منتقل کنید.
[browserChannel setMethodCallHandler:^(FlutterMethodCall* call, FlutterResult result) {
   if ([@"openBrowser" isEqualToString:call.method]) { 
      NSString *url = call.arguments[@"url"];   
      [weakSelf openBrowser:url]; 
   } else { result(FlutterMethodNotImplemented); } 
}];

 

  • کد کامل به شرح زیر است:
#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 به جای کروم باز می شود.

 

منبع.

لیست جلسات قبل آموزش برنامه نویسی فلاتر

  1. معرفی برنامه نویسی فلاتر
  2. آموزش نصب فلاتر
  3. اصول ایجاد یک برنامه فلاتر در Android Studio
  4. معماری فریم ورک برنامه نویسی فلاتر
  5. مقدمه ای بر برنامه نویسی دارت
  6. مقدمه ای بر ویجت ها در برنامه نویسی فلاتر
  7. آموزش طرح بندی در برنامه نویسی فلاتر 
  8. ژست های حرکتی در برنامه نویسی فلاتر 
  9. مدیریت State در برنامه نویسی فلاتر
  10. آموزش انیمیشن در برنامه نویسی فلاتر
  11. آموزش نوشتن کد خاص اندروید در برنامه نویسی فلاتر

 

0
برچسب ها :
نویسنده مطلب erfan molaei

دیدگاه شما

بدون دیدگاه