当前位置: 首页 > news >正文

淘宝网站优化实例江门骏科网站建设

淘宝网站优化实例,江门骏科网站建设,大兴区制作网站的公司,wordpress 广告格子前言 Flutter 是一个很有潜力的框架#xff0c;但是目前使用Flutter的APP并不算很多#xff0c;相关资料并不丰富#xff0c;介绍现有工程引入Flutter的相关文章也比较少。项目从零开始#xff0c;引入Flutter操作比较简单#xff0c;但是现有工程引入Flutter 需要费很多精… 前言 Flutter 是一个很有潜力的框架但是目前使用Flutter的APP并不算很多相关资料并不丰富介绍现有工程引入Flutter的相关文章也比较少。项目从零开始引入Flutter操作比较简单但是现有工程引入Flutter 需要费很多精力和时间这里是我在完成现有iOS工程引入Flutter后写的一次总结文章。 Flutter 环境搭建 首先是要搭建Flutter环境之前也写了一篇相关文章搭建Flutter-iOS开发环境可以参考一下 可以去官网查看github.com/flutter/flu… 比较简单这里不做赘述。 现有iOS工程引入Flutter 一、建立Flutter module 首先建立flutter module主要是用于获取改flutter app中的Generated.xcconfig和framework cd some/path/ $ flutter create -t module my_flutter 复制代码 也可以用 flutter create app 复制代码 建立flutter appflutter app中也有Generated.xcconfig和framework 二、新建配置文件 根据官网需要在工程中建立三个配置文件 Flutter.xcconfig 、Debug.xcconfig、Release.xcconfig 在XCode工程对应目录右击选择新建文件New File选中创建xcconfig文件如图 在Flutter.xcconfig中填写 //这里填写前面建立的flutter module 的Generated.xcconfig的路径 #include ../../my_flutter/.ios/Flutter/Generated.xcconfig ENABLE_BITCODENO 复制代码 在 Debug.xcconfig中填写: #include ../Flutter/Flutter.xcconfig复制代码 在 Release.xcconfig中填写: #include ../Flutter/Flutter.xcconfig FLUTTER_BUILD_MODErelease 复制代码 如果工程中用cocoapods管理需要在 Debug.xcconfig和Release.xcconfig添加pod的路径 例如 Release.xcconfig中 #include Flutter.xcconfig #include 工程路径/Pods/Target Support Files/******.release.xcconfig//pod路径 FLUTTER_BUILD_MODErelease 复制代码 在准备好这些xcconfig文件后需要到XCode工程PROJECT注意是PROJECT,不是Target中的Configuration选项里将对应的target选择成前面的xcconfig文件Debug用Debug.xcconfig, Release用 Release.xcconfig 注意进行Archive打包的时候无论是Debug包还是Release包需要切换到Release.xcconfig不然会报错。 三、为编译Dart引入相关build phase 在工程的Build Phase中新建一个Run Script,用于编译时运行脚本 建立方法如图 建立Run Script后需要移动其对应的位置需要在Target dependencies之后如果用cocoapods管理工程需要在Check Pods Manifest.lock之后 在脚本框中填入以下代码用于引进Flutter中的xcode_backend脚本 $FLUTTER_ROOT/packages/flutter_tools/bin/xcode_backend.sh build 复制代码 如图 四、生成和添加Framework 完成前面的配置后便可以在XCode对工程进行编译build (CommandB)在提示“ Build Success ” 后在iOS工程文件夹中会生成一个Flutter文件夹将其加入工程目录中,建议和刚才xcconfig所在目录并列 右键项目目录 选择 Add Files to xxx Options选Create groups添加编译生成的Flutter文件夹。需要注意但是Flutter目录下有个flutter_assets文件不能使用Create groups的方式添加只能用Creat folder references的Options 否则Flutter页面会空白渲染不出来。可以删了flutter_assets在用Creat folder references重新添加。 在添加完Flutter 文件夹之后去Embeded Binaries中添加App.framework和Flutter.framework 五、AppDelegate改造 Flutter需要和APP进行交互需要对AppDelegate 进行改造 AppDelegate.h文件中 #import Flutter/Flutter.hinterface AppDelegate : FlutterAppDelegate UIApplicationDelegate, FlutterAppLifeCycleProviderend 复制代码 AppDelegate.m 文件中 #import AppDelegate.hinterface AppDelegate ()endimplementation AppDelegate {FlutterPluginAppLifeCycleDelegate *_lifeCycleDelegate; }- (instancetype)init {if (self [super init]) {_lifeCycleDelegate [[FlutterPluginAppLifeCycleDelegate alloc] init];}return self; }- (BOOL)application:(UIApplication*)application didFinishLaunchingWithOptions:(NSDictionary*)launchOptions {return [_lifeCycleDelegate application:application didFinishLaunchingWithOptions:launchOptions]; }- (void)applicationDidEnterBackground:(UIApplication*)application {[_lifeCycleDelegate applicationDidEnterBackground:application]; }- (void)applicationWillEnterForeground:(UIApplication*)application {[_lifeCycleDelegate applicationWillEnterForeground:application]; }- (void)applicationWillResignActive:(UIApplication*)application {[_lifeCycleDelegate applicationWillResignActive:application]; }- (void)applicationDidBecomeActive:(UIApplication*)application {[_lifeCycleDelegate applicationDidBecomeActive:application]; }- (void)applicationWillTerminate:(UIApplication*)application {[_lifeCycleDelegate applicationWillTerminate:application]; }- (void)application:(UIApplication*)application didRegisterUserNotificationSettings:(UIUserNotificationSettings*)notificationSettings {[_lifeCycleDelegate application:application didRegisterUserNotificationSettings:notificationSettings]; }- (void)application:(UIApplication*)application didRegisterForRemoteNotificationsWithDeviceToken:(NSData*)deviceToken {[_lifeCycleDelegate application:application didRegisterForRemoteNotificationsWithDeviceToken:deviceToken]; }- (void)application:(UIApplication*)application didReceiveRemoteNotification:(NSDictionary*)userInfo fetchCompletionHandler:(void (^)(UIBackgroundFetchResult result))completionHandler {[_lifeCycleDelegate application:applicationdidReceiveRemoteNotification:userInfofetchCompletionHandler:completionHandler]; }- (BOOL)application:(UIApplication*)applicationopenURL:(NSURL*)urloptions:(NSDictionaryUIApplicationOpenURLOptionsKey, id*)options {return [_lifeCycleDelegate application:application openURL:url options:options]; } - (BOOL)application:(UIApplication*)application handleOpenURL:(NSURL*)url { return [_lifeCycleDelegate application:application handleOpenURL:url]; } - (BOOL)application:(UIApplication*)application openURL:(NSURL*)url sourceApplication:(NSString*)sourceApplication annotation:(id)annotation { return [_lifeCycleDelegate application:application openURL:url sourceApplication:sourceApplication annotation:annotation]; } - (void)application:(UIApplication*)application performActionForShortcutItem:(UIApplicationShortcutItem*)shortcutItem completionHandler:(void (^)(BOOL succeeded))completionHandler NS_AVAILABLE_IOS(9_0) { [_lifeCycleDelegate application:application performActionForShortcutItem:shortcutItem completionHandler:completionHandler]; } - (void)application:(UIApplication*)application handleEventsForBackgroundURLSession:(nonnull NSString*)identifier completionHandler:(nonnull void (^)(void))completionHandler { [_lifeCycleDelegate application:application handleEventsForBackgroundURLSession:identifier completionHandler:completionHandler]; } - (void)application:(UIApplication*)application performFetchWithCompletionHandler:(void (^)(UIBackgroundFetchResult result))completionHandler { [_lifeCycleDelegate application:application performFetchWithCompletionHandler:completionHandler]; } - (void)addApplicationLifeCycleDelegate:(NSObjectFlutterPlugin*)delegate { [_lifeCycleDelegate addDelegate:delegate]; } 复制代码 六、新建FlutterViewController 主要配置基本上已经完成只要在main.dart实现Flutter的业务代码即可 在原有工程中 建立FlutterViewController来承载main.dart实现的Flutter页面如 self.flutterViewController [[FlutterViewController alloc] initWithProject:nil nibName:nil bundle:nil];[self.navigationController pushViewController:self.flutterViewController animated:YES]; 复制代码 后语 到这里现有iOS工程引入Flutter的工作就完成了一些细节上的修改需要根据场景进行修改例如Flutter和Native的数据通信等。 转载于:https://www.cnblogs.com/Free-Thinker/p/10882089.html
http://www.pierceye.com/news/20632/

相关文章:

  • 小蜜蜂采集wordpressseo推广网站
  • 旅游找什么网站好商检报关网站建设
  • 论述市场营销对网站设计的影响做网站好公司
  • 营销型网站网站建设如何网站建设的方案
  • 连江建设局网站seo技术蜘蛛屯
  • 网站利用微信拉取用户做登录页学校网站怎么做的
  • 网站建设策划书范本济南优化专业的公司
  • 公司做网站的申请山东旗舰建设集团网站
  • 无锡微网站制作C#如何做简易网站
  • 做网站 属于电子商务网络推广培训去哪里好
  • 教育网站建站需求wordpress无法下载更新
  • 网吧网站怎么做怎么制作商城小程序
  • 怎么制作网站记事本怎么做网站公众号
  • 软件著作权查询入口青海seo关键词排名优化工具
  • 郑州做公司网站的公司seo关键词工具
  • 网站的登录注册页面怎么做自己做个网站要多少钱
  • 公司网站建设的步骤美容类 营销型网站
  • 东莞最好的网站建设价格低成都网站建设四川推来客网络
  • 阳江做网站多少钱2024年重大新闻摘抄
  • 公司网站的建设内容怎么写北京海淀王庄路15号院
  • phpstudy2016快速搭建网站9uu最新域址永久
  • 万网空间最多放几个网站a5站长网
  • 建设银行黑龙江省分行官方网站wordpress主题+清新
  • wordpress网站统计途牛网站大数据建设
  • 建设电子商务网站前的市场分析线上推广招聘
  • 环保推广哪个网站好哪建设网站好
  • 门户网站建设开发金塔精神文明建设网站
  • 直播网站建设需要什么软件做公司网站 国外系统
  • 想制作一个网站怎么来做关于互联网的网站
  • 学校网站建设规划书做文件的网站