- 博客(78)
- 收藏
- 关注
原创 鸿蒙技术分享:Navigation页面管理-鸿蒙@fw/router框架源码解析(二)
fw/router是在HarmonyOS鸿蒙系统中开发应用所使用的开源模块化路由框架。该路由框架基于模块化开发思想设计,支持页面路由和服务路由,支持自定义装饰器自动注册,与系统路由相比使用更便捷,功能更丰富。具体功能介绍见@fw/router:鸿蒙模块化路由框架,助力开发者实现高效模块化开发!支持页面路由和服务路由;页面路由支持多种模式(router模式,Navigation模式,混合模式);router模式支持打开非命名路由页面;
2024-11-29 09:21:23
966
原创 鸿蒙技术分享:Router页面管理-鸿蒙@fw/router框架源码解析(一)
fw/router是在HarmonyOS鸿蒙系统中开发应用所使用的开源模块化路由框架。该路由框架基于模块化开发思想设计,支持页面路由和服务路由,支持自定义装饰器自动注册,与系统路由相比使用更便捷,功能更丰富。具体功能介绍见@fw/router:鸿蒙模块化路由框架,助力开发者实现高效模块化开发!支持页面路由和服务路由;页面路由支持多种模式(router模式,Navigation模式,混合模式);router模式支持打开非命名路由页面;
2024-11-29 09:15:27
879
原创 给Flutter包私有仓库pub_server增加企业微信机器人消息
这里写自定义目录标题给Flutter包私有仓库pub_server增加企业微信机器人消息功能说明代码分析相关类初始方案实现添加一个通用的拦截器中间件添加企业微信群机器人中间件可选择添加企业微信群机器人中间件完整代码地址使用方法待优化细节给Flutter包私有仓库pub_server增加企业微信机器人消息本文相关代码地址:github。效果:功能说明默认的私有仓库pub_server服务程序在package上传成功后只是在命令行中输出了一行成功日志,缺少必要的消息通知,包发布成功了开发人员也不知道
2021-07-30 17:59:56
1219
1
原创 Flutter组件/插件开发及发布流程
Flutter组件/插件开发及发布一、组件和插件的区别组件-package: 只包含flutter功能的第三方包/子工程,纯dart开发。插件-plugin: 用来与原生进行交互,需要开发dart端代码和iOS/Android原生代码。二、组件开发流程1.创建package工程使用AndroidStudio中的Flutter Package工程模板或者命令行:flutter create -t package test_packagetest_package即package的名称。2.开
2021-04-09 15:20:24
2097
原创 Flutter Pub私有仓库搭建及使用
Flutter Pub私有仓库搭建目标将自己的package/plugin推到私有pub仓库中。关键步骤完成该目标有两个关键步骤需要处理:第一,部署pub_server服务端;第二,去除pub publish命令中的google权限校验。具体方法1.部署pub_server按照如下命令下载pub_server源代码,拉取依赖库后运行程序。git clone https://github.com/dart-archive/pub_server.git...cd pub_server/
2021-04-01 18:42:26
6621
原创 Flutter状态管理框架使用比较
Flutter状态管理框架使用比较在项目中使用了不同的框架完成同一功能Demo的状态管理,用来比较不同框架在状态管理中功能的异同点。功能包含了全局账户信息,登录页表单,修改用户信息页数据反显。项目源码:https://github.com/FantasyWind2016/state_manage_demos/框架介绍因为目前项目使用的Flutter版本是1.12.13,所以选择了合适的框架版本,而不是最新版本。普通模式全局状态使用EventBus同步状态;页面内手动setState。未进行页
2021-03-02 16:25:21
4424
4
原创 WKWebView调用evaluateJavaScript异步转同步返回的潜在问题
子线程中WKWebView调用evaluateJavaScript同步返回潜在问题业务背景UIWebView执行JS是同步返回,WKWebView执行JS是异步返回。这里通过死循环阻塞线程,以达到WKWebView执行JS同步返回的效果。当调用该代码片段的业务代码是在网络请求回调或者扫描二维码回调中时,就需要从子线程切换主线程。我遇到的情况就是在扫描二维码界面,需要切换主线程。出现问题但是当外部业务代码使用dispatch_async和dispatch_get_main_queue切换主线程执行
2021-02-21 17:50:40
5272
原创 Flutter状态管理框架GetX使用体验
Flutter状态管理框架GetX使用体验因为我们业务中使用的Flutter版本是1.12.13,对应的Dart版本为2.7,所以只使用了2.0.7版本的GetX包。GetX框架在搭页面时使用起来确实比较方便,可以比较方便的将逻辑代码和界面解耦,并不需要创建诸多的模板文件。不过这种灵活性也意味着标准不统一,团队协作时反而不太适合;在团队内使用,感觉还是需要搭配一个轻量化的结构化框架使用,比如BLoC。使用这个版本的GetX写了Demo之后,发现有几个问题:感觉不太像是稳定版本,存在一些比较明
2021-02-04 17:15:08
4772
1
原创 使用Dart/Flutter语言开发的命令行文字RPG类型小游戏
使用Dart/Flutter语言开发的命令行文字RPG类型小游戏项目源码:https://gitee.com/FantasyWind/word_game介绍项目背景本项目为使用Dart/Flutter语言开发的命令行文字RPG类型小游戏。该项目是为了学习Dart语法练习所用,功能比较简单;但本着快乐学习的理念,就弄成了一个RPG小游戏。游戏剧情游戏主体剧情为:主角[龙傲天]来到盖天村,听村民老爷爷说他孙女被后山恶魔抓取关了起来;所以去后山解救人质,但战斗过后发现打不过恶魔,于是求助村长,从村长
2020-08-02 21:52:36
991
原创 iOS9 WKWebView 释放时闪退
0.背景描述项目里发现,在iOS9系统上打开网页后关闭时,应用会闪退,调试得到日志:2019-12-18 18:25:37.931 xxx[18873:407888] *** -[XXWebViewController retain]: message sent to deallocated instance 0x7ffefd68a7401.问题查找依次排查了下页面中使用WKWebVie...
2019-12-18 18:32:40
1102
原创 iOS问题记录本:UIWebView设置allowsInlineMediaPlayback为YES后无效,运行还是全屏播放视频
0.背景描述我遇到的问题并非是如标题所述,而是反过来。如官方文档所言,在iPhone上UIWebView的allowsInlineMediaPlayback参数默认为false,运行效果是网页视频播放时会显示全屏的播放器。如果不需要全屏播放,那么请将allowsInlineMediaPlayback设为true。我需要的正是如此,网页视频需要在页面直接播放的,而实际效果正是如此。但是奇怪的是...
2019-04-29 18:20:08
9778
原创 如何在微信小程序中下载APP?
如何在微信小程序中下载APP?可能的方案官方api接口;——目前小程序官方未提供专门下载APP的接口;小程序目前是不允许将流量导出到APP之外,所以合理推断,该方案短期内并不可行。通过web-view在小程序内打开网页,然后提供触发下载功能;——按网上的信息,在安卓系统中是可以直接下载APP的,但是iOS系统不行。实际上即便是在小程序之外,微信直接打开网页时,iOS系统也是无法直接下载AP...
2018-09-26 14:57:23
19802
原创 iOS问题记录本:应用启动时网络请求没有cookie
0.背景描述因为NSURLSession会自动处理cookie,所以日常开发时不需要特别的处理请求中的cookie。 但是上周项目开发新功能时发现,有时发送请求时提示会话失效,而且是几率性的,非必现。项目的服务端分为登录系统和业务系统,业务系统中部分用户需要使用登录会话信息中的token,token在cookie中是有保存的,当然也可以将token放在url后面传过去。 之前因为以为N...
2018-07-09 20:27:49
1798
原创 组件、插件、模块、子应用、库、框架等概念辨析
组件、插件、模块、子应用、库、框架等概念辨析网上有许多讲组件化、模块化等概念的文章,但大家一般都是将这两个概念混为一谈的,并没有加以区分。而且实际上许多人对于组件、插件、模块、子应用等概念的区别也不甚明了,甚至于许多博客文章专门解说这几个概念都有些谬误。 之前已经写了一篇文章专门对组件和模块两个概念进行辨析,现在我们对于更多的概念在更高的层次上进行辨析。 想分清这几个概念我觉得结合一下软件...
2018-06-12 18:53:55
10230
2
原创 iPhone/iPad苹果设备型号对应常用名称列表(2024更新至iPhone 16 Pro Max | iPad Air 6 | iPad Pro 12.9-inch 7th Gen)
iOS设备型号大全,iPhone,iPad
2018-06-06 09:59:24
428778
33
原创 2018年AppleDeveloper苹果开发者账号组织名称修改
申请流程登入 http://itunesconnect.apple.com;点击右下角的“联系我们(Contact Us)”;选择“会员资格与账户”;选择“组织名称更改”; 在当前页面你可以选择电话或者邮件的方式和苹果进行联系,两种方式都支持中文交流。注意事项因为涉及到账户主体信息修改,所以必须是账号的Agent进行操作;修改名称具体需要的资料苹果客服人员会直接跟你沟...
2018-06-05 11:03:38
15546
原创 Swift工程混编PgyUpdate升级SDK闪退问题
0.背景描述之前有一个小项目是用Swift开发的,因为是公司内部人员使用,所以只是使用企业证书签名,在蒲公英网站上进行发布。所以,升级功能也是直接使用的蒲公英官方的SDK——PgyUpdate。 上个月项目新增一个需求,改了埋点统计的字段,其他代码没动,但是开发完成后,新打的测试包却出现启动闪退的问题。1.问题查找1.1.定位经过初步调试排查,发现断点报错信息为: Thre...
2018-06-04 20:59:05
591
原创 iOS问题记录本:UITableView点击Cell的同时刷新数据导致闪退
0.背景描述项目中有一个功能显示列表数据,列表上有搜索框用来筛选列表中的数据。 两个月前上线后发现友盟错误统计中出现少量的空数组取数闪退。1.问题查找因为闪退是在UITableView的didSelectRow代码方法中产生的,但是我的业务代码在从数据array里取数前做了边界判断:if (indexPath.row<=self.dataArray.count-1)...
2018-05-30 22:00:03
1960
原创 iOS问题记录本:UIWebView可以打开不受信任的https网页,但是网页中的动态资源css/image无法加载
0.背景描述项目中在之前版本已经兼容了打开https网页的功能,但之前因为网页证书受信任,所以打开没有什么问题。 最近一次迭代中,发现有个功能打开的网页,网页没有加载样式,布局全部乱掉。1.问题查找1)定位原因通过safari开发模式查看网页,发现加载样式表和图片时提示:The certificate for this server is invalid. You m...
2018-05-30 21:19:02
2877
原创 [Objective-C学以致用]Method Swizzling
Method Swizzling还没有一个广泛接受的译名,我个人认为比较容易理解的一个是方法变换。简单的说,它就是在运行期修改类中方法所对应的实现的技术。 在本文中,我们就将方法变换的来龙去脉捋一遍。在捋这个来龙去脉的时候,我们需要把握住三个原则:格物致知,深入浅出,学以致用。 其中,格物致知是方法,深入浅出是成果,学以致用是目的。1.格物:明白其原理方法变换的技术基础在于Ob...
2018-03-13 11:17:12
462
原创 用自然语言讲清控制反转(IoC)和依赖注入(DI)
目的控制反转(Inversion of Control,简称IoC)和依赖注入(Dependency Injection,简称DI),是软件设计中的一种思想,并非特指具体的技术。那么既然只是思想,那么就可以不通过编程语言仍然可以将清楚。那么,本文将使用日常的自然语言,讲清IoC/DI。例子通过具体的例子是讲解思想的最好方法,所以我们就先通过具体的例子来进行下面的讲述。第
2018-02-05 22:09:18
492
原创 组件化开发和模块化开发概念辨析
组件化开发和模块化开发概念辨析网上有许多讲组件化开发、模块化开发的文章,但大家一般都是将这两个概念混为一谈的,并没有加以区分。而且实际上许多人对于组件、模块的区别也不甚明了,甚至于许多博客文章专门解说这几个概念都有些谬误。想分清这两个概念我觉得结合一下软件的渐进式开发场景更容易理解。但是下面的篇幅会比较长,所以我先说结论,不耐烦的同学可以先看:概念区别对比 类别
2018-01-29 00:57:06
31896
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人