首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

「 Flutter 项目实战 」设计企业级项目入口 main.dart 设计与实现 ( GSYGithubApp 源码解读·二 )

),并不能满足实际复杂的开发需求 我将给大家呈现的 main.dart 设计方案讲具有:失败页、错误日志获取、数据共享和网络监听等功能,下面我们正式进入 二、main.dart 由于相比默认 main.dart...文件,新方案功能要多很多,所以我们需要拆分为:main.dart 和 app.dart 两个文件来实现 在 main.dart 中需要实现三个功能:异常捕获、错误页展示、主页面加载 2.1 异常捕获...(Object obj, StackTrace stack) { // crash 日志打印与上报 print(obj); print(stack); }); } 2.2 错误页展示...:ErrorPage 是我们自定义的 其主要功能应包括:错误日志上传、返回上一界面 具体逻辑需根据实际环境设计,由于异常上报跟本文主题关系无关,大家可以参照 error_page 源码 进行设计 2.3...《Flutter 实战》中讲到:InheritedWidget 是 Flutter 中非常重要的一个功能型组件,它提供了一种数据在 widget 树中从上到下传递、共享的方式 比如我们在应用的根 widget

97531

「 Flutter 项目实战 」设计企业级项目入口 main.dart 设计与实现 ( GSYGithubApp 源码解读·二 )

),并不能满足实际复杂的开发需求 我将给大家呈现的 main.dart 设计方案讲具有:失败页、错误日志获取、数据共享和网络监听等功能,下面我们正式进入 二、main.dart 由于相比默认 main.dart...文件,新方案功能要多很多,所以我们需要拆分为:main.dart 和 app.dart 两个文件来实现 在 main.dart 中需要实现三个功能:异常捕获、错误页展示、主页面加载 2.1 异常捕获...(Object obj, StackTrace stack) { // crash 日志打印与上报 print(obj); print(stack); }); } 2.2 错误页展示...:ErrorPage 是我们自定义的 其主要功能应包括:错误日志上传、返回上一界面 具体逻辑需根据实际环境设计,由于异常上报跟本文主题关系无关,大家可以参照 error_page 源码 进行设计 2.3...《Flutter 实战》中讲到:InheritedWidget 是 Flutter 中非常重要的一个功能型组件,它提供了一种数据在 widget 树中从上到下传递、共享的方式 比如我们在应用的根 widget

1.1K21
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    AngularDart4.0 英雄之旅-教程-02启动应用

    码云项目页:https://gitee.com/scooplolwiki/toh-0 此教程讲解Angular的文件架构,(查看源代码)查看应用程序。...你可能将在本教程之外更改应用,当你准备查看更改时,重新加载浏览器窗口,将会重新加载应用,当保存更改时,pub工具将检测更改和提供新的应用。...web/main.dart 驱动应用程序在浏览器中运行。...web/index.html 在里包含标签,应用程序运行的地方 web/styles.css 涵盖应用程序使用的一组样式 pubspec.yaml 描述此Dart包(应用程序...如果顺序错误,angular模板将不起作用。 下一步是什么 在下一个教程页面中,您将修改起始应用程序以显示更有趣的数据,并允许用户编辑该数据。

    1.8K20

    轻松 Flutter 入门,秒变大前端

    APP中提供一个Webview使用H5页面的Http直连。APP和H5可以相互独立开发,JS使用Bridge与原生进行数据通信,显示界面依赖Webview的浏览器渲染。...显示效果: 这是最简单的页面,没有交互,只有显示,但是实际业务场景中,是不太可能都是这种页面的,页面上的数据一般都是来自接口返回,然后再在页面上进行动态的渲染。...使用过小程序的同学在这点上应该有体会,在小程序的官方文档中,会强烈建议减少setData的使用频率,以避免性能的下降。...6.3 路由传参 列表页跳转到详情页,需要路由传参,这个在flutter体系里,又是怎么做的呢?...首先,在main.dart里,增加详情页DedailPage的路由配置 //路由表定义       routes:{         "ListPage":(context)=> ListPage(),

    4.2K30

    DartVM服务器开发(第十天)--Jaguar环境搭建

    其实搭建不成功,啥都没讲,不知道怎么回事,我使用win系统跟mac系统都是报同样的错误!今天我们来一起搭建jaguar环境吧!...成功获取.png 可以看到,我们成功的添加了依赖,然后我们按照之前的添加main.dart、bin文件夹,lilb文件夹,static文件夹 ?...项目结构.png 然后我们在main.dart文件中添加下面代码 import 'package:jaguar/jaguar.dart'; main()=>new Jaguar() .....,添加错误页 sessionManager 自定义会话管理 ..staticFile('/', 'static/index.html') 根目录返回一个index.html文件 ..staticFiles...('/static/*', 'static') 当请求路径为/static/* 返回根目录下的 static目录下的文件 ..log.onRecord.listen(print) 监听print打印的信息

    1.1K31

    利用Flutter开发了一个可运行小程序的App

    国内很多开发者都将Flutter、Taro、React Native、Weex等列为目前市面上主流的前端框架。...Flutter的路由传值非常方便,push一个路由,会返回一个Future对象(也就是Promise对象),使用await或者.then就可以在目标路由pop,回到当前页面时收到返回值。...静态语言可以避免错误,获得更多的编辑器提示词,极大的增加可维护性。很多js库也已经用ts重写了,Vue3.0的底层也将全部使用ts编写,静态语言的优势不言而喻。...第三步:将由 FinClip 设计的小程序授权页面增加至已有的小程序代码包之中并提交审核,授权页官方已经直接放到了GitHub,可直接自取:https://github.com/finogeeks/wechat-auth-page...第四步:紧接第二步,在管理后台页面点击新增登录关联,根据提示填写“微信小程序原始ID”、“微信小程序昵称与头像授权页路径”、“小程序手机号授权页路径”。

    2.5K20

    Flutter异常监测与上报

    所谓Flutter异常,指的是Flutter程序中Dart代码运行时发生的错误。...因此,要实现自定义捕获异常逻辑,只需要为它提供一个自定义的错误处理回调函数即可。 异常捕获 在Flutter开发中,根据异常来源的不同,可以将异常分为Framework异常和Dart异常。...RangeError (index): Invalid value: Not in range 0..2, inclusive: 5 对于程序中出现的异常,通常只需要在Flutter应用程序的入口main.dart...[在这里插入图片描述] 除此之外,目前市面上还有很多优秀的日志采集服务厂商,如Testin、Bugly和友盟等,不过它们大多还没有提供Flutter接入方案,因此需要开发者在原生平台进行接入。...接下来,我们就可以在 Flutter 工程中的 main.dart 文件中,使用 FlutterCrashPlugin 插件来实现异常数据上报能力了。

    3K10

    Django 分页和使用Ajax5.3

    属性 count:对象总数 num_pages:页面总数 page_range:页码列表,从1开始,例如[1, 2, 3, 4] 方法 page(num):下标以1开始,如果提供的页码不存在,抛出InvalidPage...()提供一个有效值,但是那个页面上没有任何对象时抛出 Page对象 创建对象 Paginator对象的page()方法返回Page对象,不需要手动构造 属性 object_list:当前页上所有对象的列表...number:当前页的序号,从1开始 paginator:当前page对象相关的Paginator对象 方法 has_next():如果有下一页返回True has_previous():如果有上一页返回...True has_other_pages():如果有上一页或下一页返回True next_page_number():返回下一页的页码,如果下一页不存在,抛出InvalidPage异常 previous_page_number...():返回上一页的页码,如果上一页不存在,抛出InvalidPage异常 len():返回当前页面对象的个数 迭代页面对象:访问当前页面中的每个对象 示例 创建视图pagTest from django.core.paginator

    3K20

    【Flutter 工程】006-路由跳转:go_router

    【Flutter 工程】006-路由跳转:go_router 一、概述 1、简介 GoRouter是一个用于Flutter应用程序的导航库,它提供了一种简单而强大的方式来管理应用程序的导航栈和路由。...它提供了一个简洁的接口来定义和管理应用程序的路由规则。 路由规则定义:你可以使用GoRouter定义应用程序的路由规则。...路由传递:GoRouter提供了一种在导航过程中传递路由对象的机制。这使得你可以在导航时携带额外的路由信息,以便目标页面可以根据需要进行处理。...生命周期管理:GoRouter提供了一种在导航过程中管理页面生命周期的机制。你可以根据需要在页面进入和退出时执行相应的操作。...总之,GoRouter是一个强大而灵活的导航库,可以简化Flutter应用程序的导航管理。它提供了丰富的功能和易于使用的API,使得构建复杂的导航结构变得更加简单和直观。

    6000

    千秋万代,一统江湖——Flutter for All Screens

    《安装和环境配置》(https://flutter-io.cn/docs/get-started/install) Flutter for Desktop 先决条件 要使Flutter在桌面上运行,我们必须使用...demo的示例应用程序,它具有所有必需的构建脚本,这些脚本在MacOS,Windows和Linux上运行Flutter是必需的。...接下来在example目录下执行下面命令来获取项目所需要的依赖文件 flutter packages get 在我们开始运行我们的应用程序之前,还有最后一步。...Flutter for Mobile: Flutter for Desktop: 此代码提供了一种覆盖默认目标平台的方法。这可以根据应用程序的要求使用。...也走过了基本的配置流程,接下来我们就可以在桌面上运行几乎任何已有的Flutter项目了。

    2.3K40

    django 自带分页功能

    示例¶ 向Paginator提供对象的列表,以及你想为每一页分配的元素数量,它就会为你提供访问每一页上对象的方法: >>> from django.core.paginator import Paginator...方法¶ Paginator.page(number)[source]¶ 返回在提供的下标处的Page对象,下标以1开始。如果提供的页码不存在,抛出InvalidPage异常。...exception EmptyPage[source]¶ 当向page()提供一个有效值,但是那个页面上没有任何对象时抛出。...Page.has_other_pages()[source]¶ 如果有上一页或下一页,返回True。 Page.next_page_number()[source]¶ 返回下一页的页码。...如果下一页不存在,抛出InvalidPage异常。 Page.previous_page_number()[source]¶ 返回上一页的页码。如果上一页不存在,抛出InvalidPage异常。

    93810

    【Django】 开发:补充知识

    number页对应的页信息 如果提供的页码不存在,抛出InvalidPage异常 Paginator异常exception InvalidPage:总的异常基类,包含以下两个异常子类 PageNotAnInteger...:当向page()传入一个不是整数的值时抛出 EmptyPage:当向page()提供一个有效值,但是那个页面上没有任何对象时抛出 Page对象 负责具体某一页的数据的管理 创建对象 Paginator...,从 1 开始 paginator:当前 page 对象相关的 Paginator 对象 Page 对象方法 has_next ():如果有下一页返回 True has_previous ():如果有上一页返回...True has_other_pages ():如果有上一页或下一页返回 True next_page_number ():返回下一页的页码,如果下一页不存在,抛出 InvalidPage 异常 previous_page_number...():返回上一页的页码,如果上一页不存在,抛出 InvalidPage 异常 len ():返回当前页面对象的个数 说明: Page 对象是可迭代对象,可以用 for 语句来 访问当前页面中的每个对象

    6.4K30

    两种风格的错误处理

    我用过的编程语言中,比较熟悉的两种错误处理方式,一种是异常抛出,一种是错误返回。它们各有优缺点,也有各自胜任的场景。 先来看看它们各自是怎么处理错误的。...= nil,要么主动用 _ 忽略掉错误,采用任何一种方式,就算是再粗心的程序员,都清晰地知道自己在做什么,反而更有利于及时的处理错误。 写 Go 的时候感觉自己一直在 if err !...= nil 正是因为每一个错误都被兜住了,不会漏掉。但尴尬的是,不是所有错误在本函数中都能处理,对于无法处理的错误,只能把错误返回给上层,而上层也不一定能处理,于是就一直 return。...一个例子是用户交互程序, 你需要把一些关键错误信息显示在界面上,而这个错误的来源,可能是任意层级深度的,这时异常抛出的「直达天听」的优势就显现出来了。...而返回错误的方式,特别是在语言层面没有提供语法糖的时候,你就必须要处理错误。 但异常抛出的方式应用在动态语言上很容易造成错误的泄漏,这些语言可能反而会比较适合返回错误的方式。

    17610

    Thinkphp框架自定义404页面

    404页面我们在浏览网页的过程中都遇到过,简单来说就是搜索的东西服务器无法找到,给你返回一个提示信息,但是真正的404意义又是什么呢?...请查看文章:404的真正意义; Thinkphp框架在部署模式时,当用户或他人进入不存在的页面,系统会抛出异常。框架默认给了一段文字“页面错误!...步骤一:在config文件内将“应用调试模式”值设置为“false”; ?...步骤二:新建404.html页面,下面是本站使用的404页面,大家可直接使用; 点击下载  404.rar 步骤三:将404.html页面上传至服务器跟目录,即和index.php处于同一目录; ?...步骤四:在config文件内添加如下配置,可以使用同样方式定义其他状态码页面; 'http_exception_template'    =>  [      // 定义404错误的重定向页面地址

    1.8K10

    一不小心开源了一个Flutter快速开发模板

    此外,该模板还使用了 Isar 数据库,以提供卓越的性能和全平台支持。...使用 Isar 数据库,提供高性能、跨平台的数据存储和查询功能,关键是避免写sql语句,还支持迁移,升级,各种搔操作。优化的文件结构,使开发者能够轻松找到和管理项目中的各个部分。...灵活扩展的设置页项目结构项目中,TodoList 应用程序的结构如下所示:➜ lib git:(main) ✗ tree -L 2.├── components│ ├── add_todo_dialog.dart...── todo_item.dart├── controller│ ├── settings.dart│ └── todo.dart├── i18n│ └── translations.dart├── main.dart...routes.dart 定义了应用程序的路由。main.dart 是应用程序的入口文件,包括主题配置,多语言配置,基本不需要修改这里。

    1.3K00

    前端异常的捕获与处理

    在计算机程序运行的过程中,也总是会出现各种各样的异常。下面就让我们聊一聊有哪些异常以及怎么处理它们。 一、前言 什么是异常,异常就是预料之外的事件,往往影响了程序的正确运行。...异常处理在程序设计中的重要性是毋庸置疑的。任何有影响力的 Web 应用程序都需要一套完善的异常处理机制,但实际上,通常只有服务端团队会在异常处理机制上投入较大精力。...所以,在考虑浏览器兼容性时,最好还是只使用 message 属性。 执行 JS 期间可能会发生的错误有很多类型。每种错误都有对应的错误类型,而当错误发生的时候就会抛出响应的错误对象。..."出去玩"; } catch (error) { return "看电视"; } finally { return "做作业"; } return "睡觉"; } 表面上调用这个函数会返回...TypeError xiaoming.girlfriend.name; // 抛出 TypeError 代码错误一般在开发和测试阶段就能发现。

    3.5K30
    领券