Для кроссплатформенной разработки мобильного приложения используйте фреймворк Flutter. Flutter - кроссплатформенный фреймворк, предназначенный для реализации единого кода мобильного приложения, соответствующего разным операционным системам. Для передачи данных между единым кодом и методами фреймворков Android, iOS используйте подготовленные мосты. Мост - это связующий код, разработанный на языке программирования соответствующей операционной системы, между нативными библиотеками и единым кодом.
Подготовленные мосты для разработки мобильного приложения на основе фреймворка Flutter доступны при подключении следующих фреймворков:
Для подключения фреймворка FMP и подготовки кроссплатформенного мобильного приложения к разработке через фреймворк Flutter:
Скачайте архив кроссплатформенного моста flutter-android*.zip.
Примечание. Для получения готового кроссплатформенного моста обратитесь в техническую поддержку по адресу support@fsight.ru или через сервисы технической поддержки, которые доступны после регистрации на сайте.
Добавьте содержимое папки flutter в кроссплатформенную часть проекта разработки мобильного приложения.
Добавьте файл FMPBridge.kt в нативную часть проекта разработки мобильного приложения. При необходимости откройте файл на редактирование и измените параметр package в соответствии с наименованием проекта.
Скопируйте содержимое кроссплатформенного моста из файла MainActivity.kt в нативную часть проекта разработки мобильного приложения.
После выполнения действий будет подключен фреймворк FMP и подготовлено кроссплатформенное мобильное приложение к разработке.
Для подключения фреймворка FMPKit и подготовки кроссплатформенного мобильного приложения к разработке через фреймворк Flutter:
Скачайте архив кроссплатформенного моста flutter-ios*.zip.
Примечание. Для получения готового кроссплатформенного моста обратитесь в техническую поддержку по адресу support@fsight.ru или через сервисы технической поддержки, которые доступны после регистрации на сайте.
Добавьте файл fmp_bridge.dart, содержащийся в папке lib, в кроссплатформенную часть проекта разработки мобильного приложения:

Добавьте содержимое папки FMPFlutter, расположенной в иерархии папок ios\Runner, в нативную часть проекта разработки мобильного приложения Runner.xcworkspace:

создайте ссылку на объект FMPFlutter в файле AppDelegate.swift;
инициируйте объект FMPFlutter внутри метода application(_:didFinishLaunchingWithOptions:), используя механизм FlutterMethodChannel с заданным наименованием канала, например, «com.example.flutterApplication/FMPKit»;
установите обработчики вызовов с помощью метода setMethodCallHandler():
import UIKit
@UIApplicationMain
@objc class AppDelegate: FlutterAppDelegate { var fmpFlutter: FMPFlutter! override func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool { let controller : FlutterViewController = window?.rootViewController as! FlutterViewController
// FMP Channel fmpFlutter = FMPFlutter(methodChannel: FlutterMethodChannel( name: "com.example.flutterApplication/FMPKit", binaryMessenger: controller.binaryMessenger) ) fmpFlutter.setMethodCallHandler()
GeneratedPluginRegistrant.register(with: self) return super.application(application, didFinishLaunchingWithOptions: launchOptions) } }
Откройте файл fmp_bridge.dart в кроссплатформенной части проекта разработки мобильного приложения и укажите наименование канала («com.example.flutterApplication/FMPKit»), заданное в шаге 3 для нативной части проекта, в статическом свойстве platform класса FMP:
import 'package:flutter/services.dart';
import 'dart:async';
class FMP {
static const platform = MethodChannel('com.example.flutterApplication/FMPKit');
Импортируйте fmp_bridge.dart в файл проекта разработки мобильного приложения:
import 'package:flutter_application/fmp_bridge.dart';
После выполнения действий будет подготовлено кроссплатформенное мобильное приложение к разработке с использованием свойств и методов фреймворка FMPKit. Пример построения объекта FMP:
try {
final fmp = await FMP.build(
url: 'https://url/',
environment: 'environment',
project: 'project',
udid: 'deviceID'
);
print('fmpId: ${fmp.fmpID}');
} on PlatformException catch (error) {
print('Failed to build FMP: ${error.message}');
}
См. также: