移动开发

ios 接收到推送消息时实现持续响铃震动效果

项目中需要实现一个功能:收到特定类型的推送消息时,需要一端持续的响铃加震动来提醒用户,普通的推送消息可以播放30s以内的提示音,但是只会震动一下,用ios提供的Notification Service Extension 可以实现连续震动的效果,它不依赖于APP的存活状态,会最多存活30s的时间。具体实现方式如下: 1,创建Notification Service Extension扩展

iOS - 消息发送的完整流程

写在前面 在OC里面,调用对象的某个方法其实就是给这个对象发送一个消息,这个过程我们把它分为三大阶段,分别为:消息发送阶段、动态解析阶段、消息转发阶段,本文将细细剖析这三个阶段,但是在剖析这三大阶段之前我们需要先回顾一下Class的结构。 Class结构 苹果源码最新下载地址请点击:苹果源码 在objc-runtime-new.h中可以看到objc_class结构如下: struct objc_o

iOS 基础知识(三)

image 目录 一. GCD和OperationQueue 二. CADisplayLink、NSTimer使用注意 三. 内存布局 四. Tagged Pointer 五. copy和mutableCopy 六. OC对象的内存管理 七. AutoreleasePool自动释放池 八. 图片的解压缩到渲染过程 九. 应用卡顿的原因以及优化 十. APP的启动 一. GCD和NS

Android登录拦截场景-探讨多种实现方式

前言 本文是基于之前的系列文章做的一个合集,精简之后整理为一篇长文供大家参考。合集的入口在此。合集内部有每种方案的详细使用手册,大家可以对照本文参考使用。 登录拦截与放行是大部分App开发都会遇到的一个场景,如果你的App有游客模式,但是部分高级功能需要登录之后才能使用。 那么我们就需要在用户点击这个操作的时候校验是否登录,当登录完成之后再跳转到指定的页面或弹窗。如果这些入口很多的话,那么我们就需

14. 类的关系——抽象

1、 Java抽象类 在继承中,抽象是一个非常重要的概念。 类可以是抽象的,方法也可以是抽象的。 如果一个类中没有包含足够的信息来描绘一个具体的对象,这样的类就是抽象类。 如形状类是抽象的类,圆、三角形等是具体类。 用abstract修饰的类就是抽象类。如果某个类中包含有抽象方法,那么该类就必须定义成抽象类。但是抽象类中不一定有抽象方法。 在面向对象的概念中,知道所有的对象都是

iOS开发 - 「Swift 学习」Swift协议

Swift协议 协议规定了用来实现某一特定功能所必需的方法和属性 类、结构体、枚举类型都可以遵循协议,并提供具体实现来完成协议定义的方法和功能。 能够满足协议要求的类型被称为遵循此协议 (一)协议的声明 协议的定义方式(关键词:protocol): protocol ProtocolName { // 协议内容(声明属性/方法) } 协议对属性声明的规定 协议用于指定特定的实例

iOS-button响应流程

Button响应首先从触摸屏幕开始 在这之前,需要了解坐标转换及原因 程序员的逻辑往往如图所示 image.png 也就是UI逻辑中,使用的坐标点往往是相对于父布局的,而布局会嵌套多层 屏幕上的触点,判断落点归属于哪个UI控件的话,就需要让所有UI控件的坐标点转换为相对于 window的 这样转换后的坐标就变为 image.png 直观是这样的逻辑,但真实的检测过程实际是

cocoapods源码的ruby 语法学习

Cache < Command 继承 image.png 更多继承 有时, 我们希望子类从父类继承来的方法可以做与父类不相同的事情,这就需要在子类中重写方法。例如, 你有一个类名字叫Email继承于类Message,两个类都有send方法,但是Email类的send方法需要有邮件地址和

122.single-spa 01.微应用注册流程

01.微应用注册流程.jpeg registerApplication 配置项中的app需要传是什么东西? registerApplication({ name: "appVue2", app: async () => { return new Promise((resolve, reject) => { (function (factory

ARC下AutoReleasePool的误区

写这边文章的原因是看到网络上对于AutoReleasePool讨论,发现大家对AutoReleasePool存在误区。 AutoReleasePool 里面的对象何时释放? 这个问题是常见的iOS面试题,错误的答案: 1.等到一次runloop结束,AutoReleasePool被释放时 2.超出作用域{} 这些答案都不对,标准答案: 每次release时retainCount减一,当reta