移动开发

iOS 数据存储(三) -持久化 keychain

一、简介 keychain 是一个相对独立的空间,保存到 keychain钥匙串中的信息不会因为卸载/重装 app 而丢失, 。相对于 NSUserDefaults、plist 文件保存等一般方式,keychain 保存更为安全。所以我们会用 keyChain 保存一些私密信息,比如密码、证书、设备唯一码(把获取到用户设备的唯一I D 存到 keychain 里面这样卸载或重装之后还可以获取到 i

MT8766平台Android 12系统ESIM功能实现指南

开发平台基本信息 芯片型号:MT8766 操作系统版本:Android 12 Kernel版本:msm-4.19 问题描述客户要求设备支持ESIM功能。初期在高通6125平台上预研ESIM功能时,集成流程较为简单,仅需内置ESIM厂商的APK并开启相应feature及权限即可。然而,由于原ESIM供应商L

Android-推荐一个操作状态栏开源库(StatusBar)

图片来源网络,入侵必删 很多时候,我们开发中都是要适配Android状态栏的。这篇博客分享一个操作状态栏的开源库——StatusBar,目前我开发的新项目使用这个库实现沉浸式状态栏的,希望能提高小伙伴们的开发效率。 StatusBar StatusBar主要用来操作状态栏的,主要特性如下: 透明状态栏,我个人认为可以叫做沉浸式状态栏; 状态栏背景颜色; 状态栏文字颜色(亮|暗色模式)

超详细!Android 面试题大汇总与深度解析

一、Java 与 Kotlin 基础 1. Java 的多态是如何实现的?多态是指在 Java 中,同一个行为具有多个不同表现形式或形态的能力。它主要通过方法重载(Overloading)和方法重写(Overriding)来实现。 方法重载:发生在同一个类中,方法名相同,

iOS 仿小红书抽屉效果

最新项目中需要做一个类似小红书的侧滑抽屉效果,经过各种实验,发现MMDrawerController用着不错。 大致思路如下: 打开左边抽屉,按钮后左边push出一个新控制器,但是这个控制器仍然显示在左边的抽屉里的 1:用cocoapods pod MMDrawerController第三方 pod 'MMDrawerController' 2:在AppDelegate中 didFinishLa

Flutter for OpenHarmony: Flutter 三方库 change_case 灵活控制字符串命名规范转换(更强大的 ReCase 替代方案)

欢迎加入开源鸿蒙跨平台社区:# 前言在进行 OpenHarmony 开发时,我们经常需要处理不同系统间的命名冲突。例如:后端 API 的返回是 SCREAMING_SNAKE_CASE,而你的 Flutter 实体类需要 camelCase,或者你需要生成 ArkTS 的 kebab-case 代码。虽有 recase 这样的老

ES6 Reflect

一、概述 Reflect对象与Proxy对象一样,也是 ES6 为了操作对象而提供的新 API。Reflect对象的设计目的有这样几个。 Reflect 可以用于获取目标对象的行为,它与 Object 类似,但是更易读,为操作对象提供了一种更优雅的方式。它的方法与 Proxy 是对应的。 (1) 将Object对象的一些明显属于语言内部的方法(比如Object.defineProperty)

从接口文档到前端调用:Axios 封装与实战全流程详解

文章目录 从接口文档到前端调用:Axios 封装与实战全流程详解 1.如何看接口文档? 1.1 GET 1.2 POST 2.为什么要封装请求拦截器和响应拦截器?如何封装? 2.1 封装axios实例 2.2 封装拦截器 2.3 拦截器实践 3.如何在实际的项目中使用axios 3.1 GET 3.2 POST 3.3. DELETE 3.4 PU

前端开发中常用的10个小技巧,助你写出高逼格代码

1. 有条件地向对象、数组添加属性 1) 向对象添加属性 可以使用展开运算符来有条件地向对象中添加属性: const condition = true; const person = { id: 1, name: "dby", ...(condition && { age: 12 }), }; 如果 condition 为 true ,则 { age: 16 }

mybatis分页

一、sql语句分页: 在mapper.xml文件添加sql语句 <select id="getEmpByLimit" parameterType="map" resultType="Emp"> select * from emp order by empno limit #{startIndex},#{pageSize} </select> 在接口中添加方法: