HBuilderX

HBuilderX

极客开发工具
uni-app

uni-app

开发一次,多端覆盖
uniCloud

uniCloud

云开发平台
HTML5+

HTML5+

增强HTML5的功能体验
MUI

MUI

上万Star的前端框架

vsGPU (GPU参数站)

你的硬件性能基准数据库。

查询和对比不同GPU在特定应用(如游戏、AI推理)下的性能跑分,做出数据驱动的选择。

https://iris.findtruman.io/web/vsGPU?share=L

继续阅读 »

你的硬件性能基准数据库。

查询和对比不同GPU在特定应用(如游戏、AI推理)下的性能跑分,做出数据驱动的选择。

https://iris.findtruman.io/web/vsGPU?share=L

收起阅读 »

订阅审计工具

HTML5

你的经常性支出(Recurring Revenue)仪表盘。

为你的个人或家庭财务,提供一个清晰的、关于所有订阅服务成本的概览。

https://iris.findtruman.io/web/subscription_audit_tool?share=L

继续阅读 »

你的经常性支出(Recurring Revenue)仪表盘。

为你的个人或家庭财务,提供一个清晰的、关于所有订阅服务成本的概览。

https://iris.findtruman.io/web/subscription_audit_tool?share=L

收起阅读 »

Nano Banana (AI图像工作室)

image

:你的视觉头脑风暴伙伴。

输入核心概念,AI会提供多种视觉解释,帮助你的团队在项目初期快速探索和统一视觉方向。

https://iris.findtruman.io/web/nano?share=L

继续阅读 »

:你的视觉头脑风暴伙伴。

输入核心概念,AI会提供多种视觉解释,帮助你的团队在项目初期快速探索和统一视觉方向。

https://iris.findtruman.io/web/nano?share=L

收起阅读 »

Uni-Grid二次进入样式问题深度解析与解决方案

Uni-Grid二次进入样式问题深度解析与解决方案
一、uni-grid组件概述
uni-grid是uni-app框架中用于实现网格布局的UI组件,特别适用于展示多个项目或产品的场景。它可以将子元素按照行和列的网格方式进行自动排列,保持布局的整齐和一致性。uni-grid组件提供灵活的布局选项,包括网格大小的设定、行列的对齐方式、间距调整等,使开发者能够在设计UI时保持美观性
1
2

‌主要应用场景‌:

电商分类商品列表展示
功能入口按钮布局
新闻资讯卡片展示
多项目对比展示
二、二次进入样式问题表现
uni-grid在二次进入页面时常见的样式问题主要包括:

‌少一列现象‌:第二次进入页面时,网格布局的最后一列可能消失或显示不全
7
‌样式闪烁‌:页面切换时出现短暂的布局错乱或闪烁现象
‌字节小程序嵌套问题‌:在字节跳动小程序中,由于自定义组件多一层嵌套,可能导致布局失效
8
‌边框显示异常‌:二次进入时边框可能错位或消失
‌间距变化‌:网格项之间的间距在二次进入时可能不一致
三、问题原因分析

  1. 布局计算机制
    uni-grid在首次渲染时会根据当前容器尺寸计算布局,但二次进入时可能由于以下原因导致计算不准确:

容器尺寸变化未被正确检测
缓存了错误的布局参数
响应式更新机制延迟

  1. 平台差异
    不同平台对CSS Grid布局的支持程度不同,特别是小程序环境存在额外的渲染层,可能导致样式表现不一致
    8

  2. 组件内部实现
    uni-grid组件在某些版本中存在以下问题:

列数计算逻辑缺陷
状态管理不完善
样式重置不彻底
四、解决方案与最佳实践

  1. 基础解决方案
    ‌方案一:去除边框‌

html
Copy Code
<column="4" :highlight="true" :show-border="false">
<!-- 网格项内容 -->
</uni-grid>`` 通过设置show-border="false"`可以避免边框相关的问题:ml-citation{ref="7" data="citationList"}。

方案二:固定外层容器宽度


<view style="width: 100%;">  
  <uni-grid :column="4">  
    <!-- 网格项内容 -->  
  </uni-grid>  
</view>  
2. 字节小程序特殊处理  
对于字节小程序中的嵌套问题,可以使用以下方案:  

‌方案一:使用customStyle属性  
BbS.rasyi45.cn/PoSt/1118_19299.HtM  
BbS.by00ez4.cn/PoSt/1118_37172.HtM  
BbS.azlqul5.cn/PoSt/1118_18151.HtM  
BbS.z5tiiyy.cn/PoSt/1118_83137.HtM  
BbS.n9trnzh.cn/PoSt/1118_20556.HtM  
BbS.38zp1cm.cn/PoSt/1118_67206.HtM  
BbS.na2xy0k.cn/PoSt/1118_48017.HtM  
BbS.vb5kftl.cn/PoSt/1118_70297.HtM  
BbS.cjn8dgi.cn/PoSt/1118_41500.HtM  
BbS.bhkgwzx.cn/PoSt/1118_03535.HtM  
BbS.rasyi45.cn/PoSt/1118_69627.HtM  
BbS.by00ez4.cn/PoSt/1118_51140.HtM  
BbS.azlqul5.cn/PoSt/1118_24675.HtM  
BbS.z5tiiyy.cn/PoSt/1118_48794.HtM  
BbS.n9trnzh.cn/PoSt/1118_05781.HtM  
BbS.38zp1cm.cn/PoSt/1118_78901.HtM  
BbS.na2xy0k.cn/PoSt/1118_14040.HtM  
BbS.vb5kftl.cn/PoSt/1118_77932.HtM  
BbS.cjn8dgi.cn/PoSt/1118_08901.HtM  
BbS.bhkgwzx.cn/PoSt/1118_11627.HtM  
BbS.rasyi45.cn/PoSt/1118_25034.HtM  
BbS.by00ez4.cn/PoSt/1118_40190.HtM  
BbS.azlqul5.cn/PoSt/1118_52596.HtM  
BbS.z5tiiyy.cn/PoSt/1118_95405.HtM  
BbS.n9trnzh.cn/PoSt/1118_58926.HtM  
BbS.38zp1cm.cn/PoSt/1118_55895.HtM  
BbS.na2xy0k.cn/PoSt/1118_60516.HtM  
BbS.vb5kftl.cn/PoSt/1118_83011.HtM  
BbS.cjn8dgi.cn/PoSt/1118_65087.HtM  
BbS.bhkgwzx.cn/PoSt/1118_11916.HtM  
BbS.rasyi45.cn/PoSt/1118_50730.HtM  
BbS.by00ez4.cn/PoSt/1118_87660.HtM  
BbS.azlqul5.cn/PoSt/1118_98032.HtM  
BbS.z5tiiyy.cn/PoSt/1118_57044.HtM  
BbS.n9trnzh.cn/PoSt/1118_11285.HtM  
BbS.38zp1cm.cn/PoSt/1118_65869.HtM  
BbS.na2xy0k.cn/PoSt/1118_77049.HtM  
BbS.vb5kftl.cn/PoSt/1118_28621.HtM  
BbS.cjn8dgi.cn/PoSt/1118_07305.HtM  
BbS.bhkgwzx.cn/PoSt/1118_50869.HtM  
BbS.rasyi45.cn/PoSt/1118_63530.HtM  
BbS.by00ez4.cn/PoSt/1118_55851.HtM  
BbS.azlqul5.cn/PoSt/1118_33005.HtM  
BbS.z5tiiyy.cn/PoSt/1118_64993.HtM  
BbS.n9trnzh.cn/PoSt/1118_35153.HtM  
BbS.38zp1cm.cn/PoSt/1118_18891.HtM  
BbS.na2xy0k.cn/PoSt/1118_17872.HtM  
BbS.vb5kftl.cn/PoSt/1118_94456.HtM  
BbS.cjn8dgi.cn/PoSt/1118_91569.HtM  
BbS.bhkgwzx.cn/PoSt/1118_83731.HtM  
BbS.rasyi45.cn/PoSt/1118_08124.HtM  
BbS.by00ez4.cn/PoSt/1118_96290.HtM  
BbS.azlqul5.cn/PoSt/1118_95198.HtM  
BbS.z5tiiyy.cn/PoSt/1118_45924.HtM  
BbS.n9trnzh.cn/PoSt/1118_42449.HtM  
BbS.38zp1cm.cn/PoSt/1118_35483.HtM  
BbS.na2xy0k.cn/PoSt/1118_88432.HtM  
BbS.vb5kftl.cn/PoSt/1118_73893.HtM  
BbS.cjn8dgi.cn/PoSt/1118_49010.HtM  
BbS.bhkgwzx.cn/PoSt/1118_57819.HtM  
BbS.rasyi45.cn/PoSt/1118_97562.HtM  
BbS.by00ez4.cn/PoSt/1118_28059.HtM  
BbS.azlqul5.cn/PoSt/1118_34118.HtM  
BbS.z5tiiyy.cn/PoSt/1118_36384.HtM  
BbS.n9trnzh.cn/PoSt/1118_90347.HtM  
BbS.38zp1cm.cn/PoSt/1118_34379.HtM  
BbS.na2xy0k.cn/PoSt/1118_41241.HtM  
BbS.vb5kftl.cn/PoSt/1118_42674.HtM  
BbS.cjn8dgi.cn/PoSt/1118_62028.HtM  
BbS.bhkgwzx.cn/PoSt/1118_53898.HtM  
BbS.rasyi45.cn/PoSt/1118_98630.HtM  
BbS.by00ez4.cn/PoSt/1118_90659.HtM  
BbS.azlqul5.cn/PoSt/1118_02696.HtM  
BbS.z5tiiyy.cn/PoSt/1118_41148.HtM  
BbS.n9trnzh.cn/PoSt/1118_40116.HtM  
BbS.38zp1cm.cn/PoSt/1118_06465.HtM  
BbS.na2xy0k.cn/PoSt/1118_59674.HtM  
BbS.vb5kftl.cn/PoSt/1118_48963.HtM  
BbS.cjn8dgi.cn/PoSt/1118_98155.HtM  
BbS.bhkgwzx.cn/PoSt/1118_51029.HtM  
BbS.rasyi45.cn/PoSt/1118_69314.HtM  
BbS.by00ez4.cn/PoSt/1118_49963.HtM  
BbS.azlqul5.cn/PoSt/1118_89278.HtM  
BbS.z5tiiyy.cn/PoSt/1118_36703.HtM  
BbS.n9trnzh.cn/PoSt/1118_88376.HtM  
BbS.38zp1cm.cn/PoSt/1118_03169.HtM  
BbS.na2xy0k.cn/PoSt/1118_07021.HtM  
BbS.vb5kftl.cn/PoSt/1118_35500.HtM  
BbS.cjn8dgi.cn/PoSt/1118_55419.HtM  
BbS.bhkgwzx.cn/PoSt/1118_77222.HtM  
BbS.rasyi45.cn/PoSt/1118_40900.HtM  
BbS.by00ez4.cn/PoSt/1118_37648.HtM  
BbS.azlqul5.cn/PoSt/1118_11859.HtM  
BbS.z5tiiyy.cn/PoSt/1118_90260.HtM  
BbS.n9trnzh.cn/PoSt/1118_62521.HtM  
BbS.38zp1cm.cn/PoSt/1118_68146.HtM  
BbS.na2xy0k.cn/PoSt/1118_31363.HtM  
BbS.vb5kftl.cn/PoSt/1118_38681.HtM  
BbS.cjn8dgi.cn/PoSt/1118_71651.HtM  
BbS.bhkgwzx.cn/PoSt/1118_56266.HtM  
BbS.l718213.cn/PoSt/1118_76575.HtM  
BbS.epfsrpr.cn/PoSt/1118_76972.HtM  
BbS.oduz1qq.cn/PoSt/1118_45901.HtM  
BbS.ddtirdr.cn/PoSt/1118_07782.HtM  
BbS.lmq3hz3.cn/PoSt/1118_69345.HtM  
BbS.f7c4rbn.cn/PoSt/1118_12542.HtM  
BbS.c7jt2qk.cn/PoSt/1118_11716.HtM  
BbS.41gi32y.cn/PoSt/1118_40553.HtM  
BbS.xk7ehlo.cn/PoSt/1118_18905.HtM  
BbS.kq762s8.cn/PoSt/1118_33956.HtM  
BbS.l718213.cn/PoSt/1118_46747.HtM  
BbS.epfsrpr.cn/PoSt/1118_36572.HtM  
BbS.oduz1qq.cn/PoSt/1118_78843.HtM  
BbS.ddtirdr.cn/PoSt/1118_29709.HtM  
BbS.lmq3hz3.cn/PoSt/1118_92419.HtM  
BbS.f7c4rbn.cn/PoSt/1118_74738.HtM  
BbS.c7jt2qk.cn/PoSt/1118_25708.HtM  
BbS.41gi32y.cn/PoSt/1118_47655.HtM  
BbS.xk7ehlo.cn/PoSt/1118_71516.HtM  
BbS.kq762s8.cn/PoSt/1118_35833.HtM  
BbS.l718213.cn/PoSt/1118_34632.HtM  
BbS.epfsrpr.cn/PoSt/1118_83859.HtM  
BbS.oduz1qq.cn/PoSt/1118_69403.HtM  
BbS.ddtirdr.cn/PoSt/1118_83844.HtM  
BbS.lmq3hz3.cn/PoSt/1118_76641.HtM  
BbS.f7c4rbn.cn/PoSt/1118_18984.HtM  
BbS.c7jt2qk.cn/PoSt/1118_20607.HtM  
BbS.41gi32y.cn/PoSt/1118_80898.HtM  
BbS.xk7ehlo.cn/PoSt/1118_29387.HtM  
BbS.kq762s8.cn/PoSt/1118_08148.HtM  
BbS.l718213.cn/PoSt/1118_75732.HtM  
BbS.epfsrpr.cn/PoSt/1118_87415.HtM  
BbS.oduz1qq.cn/PoSt/1118_57533.HtM  
BbS.ddtirdr.cn/PoSt/1118_47368.HtM  
BbS.lmq3hz3.cn/PoSt/1118_32119.HtM  
BbS.f7c4rbn.cn/PoSt/1118_95661.HtM  
BbS.c7jt2qk.cn/PoSt/1118_38416.HtM  
BbS.41gi32y.cn/PoSt/1118_28348.HtM  
BbS.xk7ehlo.cn/PoSt/1118_72894.HtM  
BbS.kq762s8.cn/PoSt/1118_72739.HtM  
BbS.l718213.cn/PoSt/1118_42117.HtM  
BbS.epfsrpr.cn/PoSt/1118_91418.HtM  
BbS.oduz1qq.cn/PoSt/1118_79382.HtM  
BbS.ddtirdr.cn/PoSt/1118_37447.HtM  
BbS.lmq3hz3.cn/PoSt/1118_64596.HtM  
BbS.f7c4rbn.cn/PoSt/1118_47359.HtM  
BbS.c7jt2qk.cn/PoSt/1118_71352.HtM  
BbS.41gi32y.cn/PoSt/1118_45878.HtM  
BbS.xk7ehlo.cn/PoSt/1118_01078.HtM  
BbS.kq762s8.cn/PoSt/1118_94488.HtM  
BbS.l718213.cn/PoSt/1118_05292.HtM  
BbS.epfsrpr.cn/PoSt/1118_85236.HtM  
BbS.oduz1qq.cn/PoSt/1118_56228.HtM  
BbS.ddtirdr.cn/PoSt/1118_10063.HtM  
BbS.lmq3hz3.cn/PoSt/1118_16992.HtM  
BbS.f7c4rbn.cn/PoSt/1118_40583.HtM  
BbS.c7jt2qk.cn/PoSt/1118_09714.HtM  
BbS.41gi32y.cn/PoSt/1118_10041.HtM  
BbS.xk7ehlo.cn/PoSt/1118_74710.HtM  
BbS.kq762s8.cn/PoSt/1118_46159.HtM  
BbS.l718213.cn/PoSt/1118_07596.HtM  
BbS.epfsrpr.cn/PoSt/1118_72800.HtM  
BbS.oduz1qq.cn/PoSt/1118_46078.HtM  
BbS.ddtirdr.cn/PoSt/1118_75708.HtM  
BbS.lmq3hz3.cn/PoSt/1118_15390.HtM  
BbS.f7c4rbn.cn/PoSt/1118_89008.HtM  
BbS.c7jt2qk.cn/PoSt/1118_54597.HtM  
BbS.41gi32y.cn/PoSt/1118_03033.HtM  
BbS.xk7ehlo.cn/PoSt/1118_85233.HtM  
BbS.kq762s8.cn/PoSt/1118_82028.HtM  
BbS.l718213.cn/PoSt/1118_15939.HtM  
BbS.epfsrpr.cn/PoSt/1118_25712.HtM  
BbS.oduz1qq.cn/PoSt/1118_60693.HtM  
BbS.ddtirdr.cn/PoSt/1118_19654.HtM  
BbS.lmq3hz3.cn/PoSt/1118_14853.HtM  
BbS.f7c4rbn.cn/PoSt/1118_13399.HtM  
BbS.c7jt2qk.cn/PoSt/1118_79278.HtM  
BbS.41gi32y.cn/PoSt/1118_82193.HtM  
BbS.xk7ehlo.cn/PoSt/1118_19920.HtM  
BbS.kq762s8.cn/PoSt/1118_36536.HtM  
BbS.l718213.cn/PoSt/1118_72931.HtM  
BbS.epfsrpr.cn/PoSt/1118_95034.HtM  
BbS.oduz1qq.cn/PoSt/1118_76802.HtM  
BbS.ddtirdr.cn/PoSt/1118_65608.HtM  
BbS.lmq3hz3.cn/PoSt/1118_91495.HtM  
BbS.f7c4rbn.cn/PoSt/1118_97804.HtM  
BbS.c7jt2qk.cn/PoSt/1118_22200.HtM  
BbS.41gi32y.cn/PoSt/1118_13489.HtM  
BbS.xk7ehlo.cn/PoSt/1118_06426.HtM  
BbS.kq762s8.cn/PoSt/1118_02860.HtM  
BbS.l718213.cn/PoSt/1118_46136.HtM  
BbS.epfsrpr.cn/PoSt/1118_62996.HtM  
BbS.oduz1qq.cn/PoSt/1118_08819.HtM  
BbS.ddtirdr.cn/PoSt/1118_90072.HtM  
BbS.lmq3hz3.cn/PoSt/1118_33256.HtM  
BbS.f7c4rbn.cn/PoSt/1118_79468.HtM  
BbS.c7jt2qk.cn/PoSt/1118_29864.HtM  
BbS.41gi32y.cn/PoSt/1118_46301.HtM  
BbS.xk7ehlo.cn/PoSt/1118_25723.HtM  
BbS.kq762s8.cn/PoSt/1118_75784.HtM
继续阅读 »

Uni-Grid二次进入样式问题深度解析与解决方案
一、uni-grid组件概述
uni-grid是uni-app框架中用于实现网格布局的UI组件,特别适用于展示多个项目或产品的场景。它可以将子元素按照行和列的网格方式进行自动排列,保持布局的整齐和一致性。uni-grid组件提供灵活的布局选项,包括网格大小的设定、行列的对齐方式、间距调整等,使开发者能够在设计UI时保持美观性
1
2

‌主要应用场景‌:

电商分类商品列表展示
功能入口按钮布局
新闻资讯卡片展示
多项目对比展示
二、二次进入样式问题表现
uni-grid在二次进入页面时常见的样式问题主要包括:

‌少一列现象‌:第二次进入页面时,网格布局的最后一列可能消失或显示不全
7
‌样式闪烁‌:页面切换时出现短暂的布局错乱或闪烁现象
‌字节小程序嵌套问题‌:在字节跳动小程序中,由于自定义组件多一层嵌套,可能导致布局失效
8
‌边框显示异常‌:二次进入时边框可能错位或消失
‌间距变化‌:网格项之间的间距在二次进入时可能不一致
三、问题原因分析

  1. 布局计算机制
    uni-grid在首次渲染时会根据当前容器尺寸计算布局,但二次进入时可能由于以下原因导致计算不准确:

容器尺寸变化未被正确检测
缓存了错误的布局参数
响应式更新机制延迟

  1. 平台差异
    不同平台对CSS Grid布局的支持程度不同,特别是小程序环境存在额外的渲染层,可能导致样式表现不一致
    8

  2. 组件内部实现
    uni-grid组件在某些版本中存在以下问题:

列数计算逻辑缺陷
状态管理不完善
样式重置不彻底
四、解决方案与最佳实践

  1. 基础解决方案
    ‌方案一:去除边框‌

html
Copy Code
<column="4" :highlight="true" :show-border="false">
<!-- 网格项内容 -->
</uni-grid>`` 通过设置show-border="false"`可以避免边框相关的问题:ml-citation{ref="7" data="citationList"}。

方案二:固定外层容器宽度


<view style="width: 100%;">  
  <uni-grid :column="4">  
    <!-- 网格项内容 -->  
  </uni-grid>  
</view>  
2. 字节小程序特殊处理  
对于字节小程序中的嵌套问题,可以使用以下方案:  

‌方案一:使用customStyle属性  
BbS.rasyi45.cn/PoSt/1118_19299.HtM  
BbS.by00ez4.cn/PoSt/1118_37172.HtM  
BbS.azlqul5.cn/PoSt/1118_18151.HtM  
BbS.z5tiiyy.cn/PoSt/1118_83137.HtM  
BbS.n9trnzh.cn/PoSt/1118_20556.HtM  
BbS.38zp1cm.cn/PoSt/1118_67206.HtM  
BbS.na2xy0k.cn/PoSt/1118_48017.HtM  
BbS.vb5kftl.cn/PoSt/1118_70297.HtM  
BbS.cjn8dgi.cn/PoSt/1118_41500.HtM  
BbS.bhkgwzx.cn/PoSt/1118_03535.HtM  
BbS.rasyi45.cn/PoSt/1118_69627.HtM  
BbS.by00ez4.cn/PoSt/1118_51140.HtM  
BbS.azlqul5.cn/PoSt/1118_24675.HtM  
BbS.z5tiiyy.cn/PoSt/1118_48794.HtM  
BbS.n9trnzh.cn/PoSt/1118_05781.HtM  
BbS.38zp1cm.cn/PoSt/1118_78901.HtM  
BbS.na2xy0k.cn/PoSt/1118_14040.HtM  
BbS.vb5kftl.cn/PoSt/1118_77932.HtM  
BbS.cjn8dgi.cn/PoSt/1118_08901.HtM  
BbS.bhkgwzx.cn/PoSt/1118_11627.HtM  
BbS.rasyi45.cn/PoSt/1118_25034.HtM  
BbS.by00ez4.cn/PoSt/1118_40190.HtM  
BbS.azlqul5.cn/PoSt/1118_52596.HtM  
BbS.z5tiiyy.cn/PoSt/1118_95405.HtM  
BbS.n9trnzh.cn/PoSt/1118_58926.HtM  
BbS.38zp1cm.cn/PoSt/1118_55895.HtM  
BbS.na2xy0k.cn/PoSt/1118_60516.HtM  
BbS.vb5kftl.cn/PoSt/1118_83011.HtM  
BbS.cjn8dgi.cn/PoSt/1118_65087.HtM  
BbS.bhkgwzx.cn/PoSt/1118_11916.HtM  
BbS.rasyi45.cn/PoSt/1118_50730.HtM  
BbS.by00ez4.cn/PoSt/1118_87660.HtM  
BbS.azlqul5.cn/PoSt/1118_98032.HtM  
BbS.z5tiiyy.cn/PoSt/1118_57044.HtM  
BbS.n9trnzh.cn/PoSt/1118_11285.HtM  
BbS.38zp1cm.cn/PoSt/1118_65869.HtM  
BbS.na2xy0k.cn/PoSt/1118_77049.HtM  
BbS.vb5kftl.cn/PoSt/1118_28621.HtM  
BbS.cjn8dgi.cn/PoSt/1118_07305.HtM  
BbS.bhkgwzx.cn/PoSt/1118_50869.HtM  
BbS.rasyi45.cn/PoSt/1118_63530.HtM  
BbS.by00ez4.cn/PoSt/1118_55851.HtM  
BbS.azlqul5.cn/PoSt/1118_33005.HtM  
BbS.z5tiiyy.cn/PoSt/1118_64993.HtM  
BbS.n9trnzh.cn/PoSt/1118_35153.HtM  
BbS.38zp1cm.cn/PoSt/1118_18891.HtM  
BbS.na2xy0k.cn/PoSt/1118_17872.HtM  
BbS.vb5kftl.cn/PoSt/1118_94456.HtM  
BbS.cjn8dgi.cn/PoSt/1118_91569.HtM  
BbS.bhkgwzx.cn/PoSt/1118_83731.HtM  
BbS.rasyi45.cn/PoSt/1118_08124.HtM  
BbS.by00ez4.cn/PoSt/1118_96290.HtM  
BbS.azlqul5.cn/PoSt/1118_95198.HtM  
BbS.z5tiiyy.cn/PoSt/1118_45924.HtM  
BbS.n9trnzh.cn/PoSt/1118_42449.HtM  
BbS.38zp1cm.cn/PoSt/1118_35483.HtM  
BbS.na2xy0k.cn/PoSt/1118_88432.HtM  
BbS.vb5kftl.cn/PoSt/1118_73893.HtM  
BbS.cjn8dgi.cn/PoSt/1118_49010.HtM  
BbS.bhkgwzx.cn/PoSt/1118_57819.HtM  
BbS.rasyi45.cn/PoSt/1118_97562.HtM  
BbS.by00ez4.cn/PoSt/1118_28059.HtM  
BbS.azlqul5.cn/PoSt/1118_34118.HtM  
BbS.z5tiiyy.cn/PoSt/1118_36384.HtM  
BbS.n9trnzh.cn/PoSt/1118_90347.HtM  
BbS.38zp1cm.cn/PoSt/1118_34379.HtM  
BbS.na2xy0k.cn/PoSt/1118_41241.HtM  
BbS.vb5kftl.cn/PoSt/1118_42674.HtM  
BbS.cjn8dgi.cn/PoSt/1118_62028.HtM  
BbS.bhkgwzx.cn/PoSt/1118_53898.HtM  
BbS.rasyi45.cn/PoSt/1118_98630.HtM  
BbS.by00ez4.cn/PoSt/1118_90659.HtM  
BbS.azlqul5.cn/PoSt/1118_02696.HtM  
BbS.z5tiiyy.cn/PoSt/1118_41148.HtM  
BbS.n9trnzh.cn/PoSt/1118_40116.HtM  
BbS.38zp1cm.cn/PoSt/1118_06465.HtM  
BbS.na2xy0k.cn/PoSt/1118_59674.HtM  
BbS.vb5kftl.cn/PoSt/1118_48963.HtM  
BbS.cjn8dgi.cn/PoSt/1118_98155.HtM  
BbS.bhkgwzx.cn/PoSt/1118_51029.HtM  
BbS.rasyi45.cn/PoSt/1118_69314.HtM  
BbS.by00ez4.cn/PoSt/1118_49963.HtM  
BbS.azlqul5.cn/PoSt/1118_89278.HtM  
BbS.z5tiiyy.cn/PoSt/1118_36703.HtM  
BbS.n9trnzh.cn/PoSt/1118_88376.HtM  
BbS.38zp1cm.cn/PoSt/1118_03169.HtM  
BbS.na2xy0k.cn/PoSt/1118_07021.HtM  
BbS.vb5kftl.cn/PoSt/1118_35500.HtM  
BbS.cjn8dgi.cn/PoSt/1118_55419.HtM  
BbS.bhkgwzx.cn/PoSt/1118_77222.HtM  
BbS.rasyi45.cn/PoSt/1118_40900.HtM  
BbS.by00ez4.cn/PoSt/1118_37648.HtM  
BbS.azlqul5.cn/PoSt/1118_11859.HtM  
BbS.z5tiiyy.cn/PoSt/1118_90260.HtM  
BbS.n9trnzh.cn/PoSt/1118_62521.HtM  
BbS.38zp1cm.cn/PoSt/1118_68146.HtM  
BbS.na2xy0k.cn/PoSt/1118_31363.HtM  
BbS.vb5kftl.cn/PoSt/1118_38681.HtM  
BbS.cjn8dgi.cn/PoSt/1118_71651.HtM  
BbS.bhkgwzx.cn/PoSt/1118_56266.HtM  
BbS.l718213.cn/PoSt/1118_76575.HtM  
BbS.epfsrpr.cn/PoSt/1118_76972.HtM  
BbS.oduz1qq.cn/PoSt/1118_45901.HtM  
BbS.ddtirdr.cn/PoSt/1118_07782.HtM  
BbS.lmq3hz3.cn/PoSt/1118_69345.HtM  
BbS.f7c4rbn.cn/PoSt/1118_12542.HtM  
BbS.c7jt2qk.cn/PoSt/1118_11716.HtM  
BbS.41gi32y.cn/PoSt/1118_40553.HtM  
BbS.xk7ehlo.cn/PoSt/1118_18905.HtM  
BbS.kq762s8.cn/PoSt/1118_33956.HtM  
BbS.l718213.cn/PoSt/1118_46747.HtM  
BbS.epfsrpr.cn/PoSt/1118_36572.HtM  
BbS.oduz1qq.cn/PoSt/1118_78843.HtM  
BbS.ddtirdr.cn/PoSt/1118_29709.HtM  
BbS.lmq3hz3.cn/PoSt/1118_92419.HtM  
BbS.f7c4rbn.cn/PoSt/1118_74738.HtM  
BbS.c7jt2qk.cn/PoSt/1118_25708.HtM  
BbS.41gi32y.cn/PoSt/1118_47655.HtM  
BbS.xk7ehlo.cn/PoSt/1118_71516.HtM  
BbS.kq762s8.cn/PoSt/1118_35833.HtM  
BbS.l718213.cn/PoSt/1118_34632.HtM  
BbS.epfsrpr.cn/PoSt/1118_83859.HtM  
BbS.oduz1qq.cn/PoSt/1118_69403.HtM  
BbS.ddtirdr.cn/PoSt/1118_83844.HtM  
BbS.lmq3hz3.cn/PoSt/1118_76641.HtM  
BbS.f7c4rbn.cn/PoSt/1118_18984.HtM  
BbS.c7jt2qk.cn/PoSt/1118_20607.HtM  
BbS.41gi32y.cn/PoSt/1118_80898.HtM  
BbS.xk7ehlo.cn/PoSt/1118_29387.HtM  
BbS.kq762s8.cn/PoSt/1118_08148.HtM  
BbS.l718213.cn/PoSt/1118_75732.HtM  
BbS.epfsrpr.cn/PoSt/1118_87415.HtM  
BbS.oduz1qq.cn/PoSt/1118_57533.HtM  
BbS.ddtirdr.cn/PoSt/1118_47368.HtM  
BbS.lmq3hz3.cn/PoSt/1118_32119.HtM  
BbS.f7c4rbn.cn/PoSt/1118_95661.HtM  
BbS.c7jt2qk.cn/PoSt/1118_38416.HtM  
BbS.41gi32y.cn/PoSt/1118_28348.HtM  
BbS.xk7ehlo.cn/PoSt/1118_72894.HtM  
BbS.kq762s8.cn/PoSt/1118_72739.HtM  
BbS.l718213.cn/PoSt/1118_42117.HtM  
BbS.epfsrpr.cn/PoSt/1118_91418.HtM  
BbS.oduz1qq.cn/PoSt/1118_79382.HtM  
BbS.ddtirdr.cn/PoSt/1118_37447.HtM  
BbS.lmq3hz3.cn/PoSt/1118_64596.HtM  
BbS.f7c4rbn.cn/PoSt/1118_47359.HtM  
BbS.c7jt2qk.cn/PoSt/1118_71352.HtM  
BbS.41gi32y.cn/PoSt/1118_45878.HtM  
BbS.xk7ehlo.cn/PoSt/1118_01078.HtM  
BbS.kq762s8.cn/PoSt/1118_94488.HtM  
BbS.l718213.cn/PoSt/1118_05292.HtM  
BbS.epfsrpr.cn/PoSt/1118_85236.HtM  
BbS.oduz1qq.cn/PoSt/1118_56228.HtM  
BbS.ddtirdr.cn/PoSt/1118_10063.HtM  
BbS.lmq3hz3.cn/PoSt/1118_16992.HtM  
BbS.f7c4rbn.cn/PoSt/1118_40583.HtM  
BbS.c7jt2qk.cn/PoSt/1118_09714.HtM  
BbS.41gi32y.cn/PoSt/1118_10041.HtM  
BbS.xk7ehlo.cn/PoSt/1118_74710.HtM  
BbS.kq762s8.cn/PoSt/1118_46159.HtM  
BbS.l718213.cn/PoSt/1118_07596.HtM  
BbS.epfsrpr.cn/PoSt/1118_72800.HtM  
BbS.oduz1qq.cn/PoSt/1118_46078.HtM  
BbS.ddtirdr.cn/PoSt/1118_75708.HtM  
BbS.lmq3hz3.cn/PoSt/1118_15390.HtM  
BbS.f7c4rbn.cn/PoSt/1118_89008.HtM  
BbS.c7jt2qk.cn/PoSt/1118_54597.HtM  
BbS.41gi32y.cn/PoSt/1118_03033.HtM  
BbS.xk7ehlo.cn/PoSt/1118_85233.HtM  
BbS.kq762s8.cn/PoSt/1118_82028.HtM  
BbS.l718213.cn/PoSt/1118_15939.HtM  
BbS.epfsrpr.cn/PoSt/1118_25712.HtM  
BbS.oduz1qq.cn/PoSt/1118_60693.HtM  
BbS.ddtirdr.cn/PoSt/1118_19654.HtM  
BbS.lmq3hz3.cn/PoSt/1118_14853.HtM  
BbS.f7c4rbn.cn/PoSt/1118_13399.HtM  
BbS.c7jt2qk.cn/PoSt/1118_79278.HtM  
BbS.41gi32y.cn/PoSt/1118_82193.HtM  
BbS.xk7ehlo.cn/PoSt/1118_19920.HtM  
BbS.kq762s8.cn/PoSt/1118_36536.HtM  
BbS.l718213.cn/PoSt/1118_72931.HtM  
BbS.epfsrpr.cn/PoSt/1118_95034.HtM  
BbS.oduz1qq.cn/PoSt/1118_76802.HtM  
BbS.ddtirdr.cn/PoSt/1118_65608.HtM  
BbS.lmq3hz3.cn/PoSt/1118_91495.HtM  
BbS.f7c4rbn.cn/PoSt/1118_97804.HtM  
BbS.c7jt2qk.cn/PoSt/1118_22200.HtM  
BbS.41gi32y.cn/PoSt/1118_13489.HtM  
BbS.xk7ehlo.cn/PoSt/1118_06426.HtM  
BbS.kq762s8.cn/PoSt/1118_02860.HtM  
BbS.l718213.cn/PoSt/1118_46136.HtM  
BbS.epfsrpr.cn/PoSt/1118_62996.HtM  
BbS.oduz1qq.cn/PoSt/1118_08819.HtM  
BbS.ddtirdr.cn/PoSt/1118_90072.HtM  
BbS.lmq3hz3.cn/PoSt/1118_33256.HtM  
BbS.f7c4rbn.cn/PoSt/1118_79468.HtM  
BbS.c7jt2qk.cn/PoSt/1118_29864.HtM  
BbS.41gi32y.cn/PoSt/1118_46301.HtM  
BbS.xk7ehlo.cn/PoSt/1118_25723.HtM  
BbS.kq762s8.cn/PoSt/1118_75784.HtM
收起阅读 »

自定义通知铃声设置时效全攻略:从基础操作到智能场景应用

自定义事件

自定义通知铃声设置时效全攻略:从基础操作到智能场景应用
在个性化手机使用体验中,自定义通知铃声不仅能提升辨识度,还能通过时效设置实现不同场景下的智能切换。本文将全面解析Android和iOS系统下自定义通知铃声的设置方法、时效功能实现技巧以及常见问题解决方案,助您打造专属的听觉标识系统。

一、主流系统自定义铃声设置方法

  1. Android系统设置指南
    华为、小米等Android设备提供多层级铃声定制方案:

‌基础设置路径‌:

进入"设置"→"声音和振动"→选择"通知铃声"
系统内置多款风格铃声,支持试听预览
点击"从存储设备选择"可导入本地MP3/WAV格式音频文件
2
‌进阶个性化设置‌:

‌联系人专属铃声‌:在通讯录中编辑联系人→"铃声"选项→分配独立铃声
‌应用分类铃声‌:部分系统支持为微信、邮件等不同应用设置独立提示音
‌视频铃声功能‌:华为等品牌支持将短视频设为来电显示
2
‌小米设备特殊设置‌:

日历应用内可单独设置日程提醒铃声
通过"更多设置→日程提醒设置→铃声"路径完成配置
1

  1. iOS系统设置方案
    苹果设备通过系统级整合实现深度定制:

‌标准设置流程‌:

前往"设置"→"声音与触感"→选择"通知铃声"
系统铃声自动播放预览,点击即可应用
4
‌自定义铃声制作‌:

使用库乐队(GarageBand)应用裁剪音频(≤40秒)
导出时选择"电话铃声"格式(.m4r)
通过iTunes同步至设备铃声库
5
‌情景化铃声分配‌:

为联系人设置专属铃声:通讯录→编辑→"电话铃声"
微信等第三方应用支持独立提示音设置
6
二、时效设置与智能场景应用

  1. Android时效功能实现方案
    ‌第三方工具辅助‌:

使用Tasker等自动化工具设置定时铃声更换
可配置工作日/节假日自动切换不同铃声
‌闹钟功能变通应用‌:

通过AlarmManager设置定时任务
触发时自动切换预设铃声(需系统权限)
7
9
‌情景模式联动‌:

部分厂商系统支持"驾驶模式"等自动切换
连接蓝牙设备时可触发特定铃声配置

  1. iOS时效管理方案
    ‌专注模式智能切换‌:

创建"工作/睡眠/健身"等专注模式
为不同模式分配专属通知铃声
10
12
‌时间自动化设置‌:

通过快捷指令创建时间触发规则
例如工作日8:00-18:00使用商务铃声,其余时间使用休闲铃声
‌地理位置触发‌:

到达公司/家庭等特定位置时自动切换铃声
需配合"到达时"自动化条件设置
三、专业使用技巧与注意事项

  1. 音频优化建议
    ‌格式与时长规范‌:

Android:推荐MP3/WAV格式,时长≤30秒
iOS:必须为.m4r格式,来电铃声≤40秒
5
‌音量平衡技巧‌:

避免过大的动态范围导致部分片段听不清
可使用Audacity等工具进行标准化处理
‌多设备同步方案‌:

华为等品牌支持云同步铃声库
iOS通过iCloud实现铃声跨设备共享

  1. 常见问题排查
    ‌铃声不响的解决方法‌:

检查静音开关和勿扰模式状态
确认"铃声与提醒"音量已调高
验证铃声文件是否损坏
17
‌自定义铃声无法识别‌:

Android需将文件放入Ringtones文件夹
iOS需通过库乐队正确导出.m4r格式
15
‌微信专属铃声设置‌:

在微信"我→设置→新消息通知"中配置
支持为特定好友设置独立提示音
18
四、创意应用场景示例
‌时间感知铃声‌:

早晨使用轻快铃声唤醒
午后切换为柔和提示音
晚间启用低音量夜间模式
‌工作生活分离方案‌:

工作日:简洁专业的提示音
周末:个性化音乐片段
假期:特殊节日音效
‌健康管理应用‌:

久坐提醒使用渐进式铃声
服药时间设置独特提示音
运动时段匹配节奏感强的铃声
通过合理规划通知铃声的时效设置,不仅能提升手机使用的个性化体验,还能在不同场景下实现高效的信息管理。建议定期更新铃声库,避免听觉疲劳,同时注意遵守版权法规,使用合法授权的音频素材。

继续阅读 »

自定义通知铃声设置时效全攻略:从基础操作到智能场景应用
在个性化手机使用体验中,自定义通知铃声不仅能提升辨识度,还能通过时效设置实现不同场景下的智能切换。本文将全面解析Android和iOS系统下自定义通知铃声的设置方法、时效功能实现技巧以及常见问题解决方案,助您打造专属的听觉标识系统。

一、主流系统自定义铃声设置方法

  1. Android系统设置指南
    华为、小米等Android设备提供多层级铃声定制方案:

‌基础设置路径‌:

进入"设置"→"声音和振动"→选择"通知铃声"
系统内置多款风格铃声,支持试听预览
点击"从存储设备选择"可导入本地MP3/WAV格式音频文件
2
‌进阶个性化设置‌:

‌联系人专属铃声‌:在通讯录中编辑联系人→"铃声"选项→分配独立铃声
‌应用分类铃声‌:部分系统支持为微信、邮件等不同应用设置独立提示音
‌视频铃声功能‌:华为等品牌支持将短视频设为来电显示
2
‌小米设备特殊设置‌:

日历应用内可单独设置日程提醒铃声
通过"更多设置→日程提醒设置→铃声"路径完成配置
1

  1. iOS系统设置方案
    苹果设备通过系统级整合实现深度定制:

‌标准设置流程‌:

前往"设置"→"声音与触感"→选择"通知铃声"
系统铃声自动播放预览,点击即可应用
4
‌自定义铃声制作‌:

使用库乐队(GarageBand)应用裁剪音频(≤40秒)
导出时选择"电话铃声"格式(.m4r)
通过iTunes同步至设备铃声库
5
‌情景化铃声分配‌:

为联系人设置专属铃声:通讯录→编辑→"电话铃声"
微信等第三方应用支持独立提示音设置
6
二、时效设置与智能场景应用

  1. Android时效功能实现方案
    ‌第三方工具辅助‌:

使用Tasker等自动化工具设置定时铃声更换
可配置工作日/节假日自动切换不同铃声
‌闹钟功能变通应用‌:

通过AlarmManager设置定时任务
触发时自动切换预设铃声(需系统权限)
7
9
‌情景模式联动‌:

部分厂商系统支持"驾驶模式"等自动切换
连接蓝牙设备时可触发特定铃声配置

  1. iOS时效管理方案
    ‌专注模式智能切换‌:

创建"工作/睡眠/健身"等专注模式
为不同模式分配专属通知铃声
10
12
‌时间自动化设置‌:

通过快捷指令创建时间触发规则
例如工作日8:00-18:00使用商务铃声,其余时间使用休闲铃声
‌地理位置触发‌:

到达公司/家庭等特定位置时自动切换铃声
需配合"到达时"自动化条件设置
三、专业使用技巧与注意事项

  1. 音频优化建议
    ‌格式与时长规范‌:

Android:推荐MP3/WAV格式,时长≤30秒
iOS:必须为.m4r格式,来电铃声≤40秒
5
‌音量平衡技巧‌:

避免过大的动态范围导致部分片段听不清
可使用Audacity等工具进行标准化处理
‌多设备同步方案‌:

华为等品牌支持云同步铃声库
iOS通过iCloud实现铃声跨设备共享

  1. 常见问题排查
    ‌铃声不响的解决方法‌:

检查静音开关和勿扰模式状态
确认"铃声与提醒"音量已调高
验证铃声文件是否损坏
17
‌自定义铃声无法识别‌:

Android需将文件放入Ringtones文件夹
iOS需通过库乐队正确导出.m4r格式
15
‌微信专属铃声设置‌:

在微信"我→设置→新消息通知"中配置
支持为特定好友设置独立提示音
18
四、创意应用场景示例
‌时间感知铃声‌:

早晨使用轻快铃声唤醒
午后切换为柔和提示音
晚间启用低音量夜间模式
‌工作生活分离方案‌:

工作日:简洁专业的提示音
周末:个性化音乐片段
假期:特殊节日音效
‌健康管理应用‌:

久坐提醒使用渐进式铃声
服药时间设置独特提示音
运动时段匹配节奏感强的铃声
通过合理规划通知铃声的时效设置,不仅能提升手机使用的个性化体验,还能在不同场景下实现高效的信息管理。建议定期更新铃声库,避免听觉疲劳,同时注意遵守版权法规,使用合法授权的音频素材。

收起阅读 »

【急招】智能家居App开发大神!uni-app开发平台,杭州本地/滨江区办公,远程兼职亦可

招聘 uniapp

「万物互联时代,让智能走进千万家」—— 我们是一家深耕智能家居领域的创新团队,正全力打造一款体验顶尖的智能生活控制终端App。现急需技术大牛加入,共筑智慧生活新生态!无论你是杭州本地想就近办公,还是偏爱远程项目制兼职,只要你有实力,我们都虚位以待!

🔥 我们要找这样的你(核心岗位职责)
1.主导智能家居App(Android/iOS双端)的全流程技术落地,从需求分析、架构设计到核心模块编码与迭代优化,把控技术方向。
2.攻克设备核心交互难题,实现App与智能设备的快速配网、稳定连接、精准控制及实时状态同步,打造丝滑控制体验。
3.负责音视频核心功能开发,包括直播对讲、录像回放、云存储播放等,持续优化流畅度与清晰度,提升用户视听体验。
4.牵头移动端技术选型与架构升级,推进组件化、模块化开发,让代码更具可维护性,大幅提升团队开发效率。
5.死磕App性能与稳定性,监控并优化启动速度、内存占用、功耗及网络流量,精准解决Crash和ANR问题,保障千万用户稳定使用。
6.紧跟移动平台技术前沿,将合适的新技术、新框架融入产品,让我们的App始终保持行业竞争力。

🎯 我们希望你具备(任职要求)
1.计算机相关专业本科及以上学历,3年以上Android或iOS开发经验,有智能家居、物联网或音视频类App开发经验者优先,加分项拉满!
2.满足以下任一技术栈深耕要求,多栈掌握者优先:
精通uniapp开发,能高效实现双端适配;
3.Android方向:精通Java/Kotlin,熟悉Android SDK/NDK,对性能优化、内存管理有深刻理解;
4.iOS方向:精通Swift/Objective-C,熟悉Cocoa Touch框架,深入理解内存管理机制和运行时;
5.熟悉TCP/IP、HTTP/HTTPS、WebSocket等协议,具备扎实的移动端网络编程能力;
6.有音视频开发经验者狂喜!熟悉FFmpeg、MediaCodec、AudioTrack(Android)或AVFoundation(iOS)等技术者优先;
7.掌握Flutter、React Native等跨端技术,或理解设计模式、具备优秀架构设计能力者优先;
8.熟练使用Git、Maven/Cocoapods等开发工具,会用性能分析工具排查问题。
9.对用户体验有极致追求,学习能力拉满,团队协作意识强,能独立啃下复杂技术难题。

📍 工作模式&地点说明
•地点要求:优先杭州本地居民,可接受在滨江区核心商圈办公(交通便利,配套齐全);
•灵活选项:支持远程项目制兼职,只要能高效交付成果,工作地点由你定!

✨ 我们能提供
•极具竞争力的薪酬回报:全职薪资对标行业Top30%,兼职按项目难度及交付质量核算,酬劳丰厚不拖欠;
•技术成长沃土:接触智能家居+音视频双赛道核心技术,团队定期技术分享,和大牛并肩成长;
•灵活工作氛围:扁平化组织架构,注重效率与成果,远程兼职也能享受完整项目协作支持;
•额外福利:全职员工享五险一金、节日福利、定期团建,兼职伙伴享项目奖金!

📩 如何加入我们?
请将你的个人简历(附项目经历及技术栈说明)发送至邮箱:jessixu32@163.com,邮件主题注明「智能家居App开发+姓名+工作模式(全职/兼职)」。
我们会在3个工作日内筛选简历并联系面试,合则约聊!杭州本地候选人可安排线下办公场地参观,远程候选人支持线上面试。
期待热爱技术、向往智能生活的你,和我们一起用代码点亮千万家庭的智慧未来!

继续阅读 »

「万物互联时代,让智能走进千万家」—— 我们是一家深耕智能家居领域的创新团队,正全力打造一款体验顶尖的智能生活控制终端App。现急需技术大牛加入,共筑智慧生活新生态!无论你是杭州本地想就近办公,还是偏爱远程项目制兼职,只要你有实力,我们都虚位以待!

🔥 我们要找这样的你(核心岗位职责)
1.主导智能家居App(Android/iOS双端)的全流程技术落地,从需求分析、架构设计到核心模块编码与迭代优化,把控技术方向。
2.攻克设备核心交互难题,实现App与智能设备的快速配网、稳定连接、精准控制及实时状态同步,打造丝滑控制体验。
3.负责音视频核心功能开发,包括直播对讲、录像回放、云存储播放等,持续优化流畅度与清晰度,提升用户视听体验。
4.牵头移动端技术选型与架构升级,推进组件化、模块化开发,让代码更具可维护性,大幅提升团队开发效率。
5.死磕App性能与稳定性,监控并优化启动速度、内存占用、功耗及网络流量,精准解决Crash和ANR问题,保障千万用户稳定使用。
6.紧跟移动平台技术前沿,将合适的新技术、新框架融入产品,让我们的App始终保持行业竞争力。

🎯 我们希望你具备(任职要求)
1.计算机相关专业本科及以上学历,3年以上Android或iOS开发经验,有智能家居、物联网或音视频类App开发经验者优先,加分项拉满!
2.满足以下任一技术栈深耕要求,多栈掌握者优先:
精通uniapp开发,能高效实现双端适配;
3.Android方向:精通Java/Kotlin,熟悉Android SDK/NDK,对性能优化、内存管理有深刻理解;
4.iOS方向:精通Swift/Objective-C,熟悉Cocoa Touch框架,深入理解内存管理机制和运行时;
5.熟悉TCP/IP、HTTP/HTTPS、WebSocket等协议,具备扎实的移动端网络编程能力;
6.有音视频开发经验者狂喜!熟悉FFmpeg、MediaCodec、AudioTrack(Android)或AVFoundation(iOS)等技术者优先;
7.掌握Flutter、React Native等跨端技术,或理解设计模式、具备优秀架构设计能力者优先;
8.熟练使用Git、Maven/Cocoapods等开发工具,会用性能分析工具排查问题。
9.对用户体验有极致追求,学习能力拉满,团队协作意识强,能独立啃下复杂技术难题。

📍 工作模式&地点说明
•地点要求:优先杭州本地居民,可接受在滨江区核心商圈办公(交通便利,配套齐全);
•灵活选项:支持远程项目制兼职,只要能高效交付成果,工作地点由你定!

✨ 我们能提供
•极具竞争力的薪酬回报:全职薪资对标行业Top30%,兼职按项目难度及交付质量核算,酬劳丰厚不拖欠;
•技术成长沃土:接触智能家居+音视频双赛道核心技术,团队定期技术分享,和大牛并肩成长;
•灵活工作氛围:扁平化组织架构,注重效率与成果,远程兼职也能享受完整项目协作支持;
•额外福利:全职员工享五险一金、节日福利、定期团建,兼职伙伴享项目奖金!

📩 如何加入我们?
请将你的个人简历(附项目经历及技术栈说明)发送至邮箱:jessixu32@163.com,邮件主题注明「智能家居App开发+姓名+工作模式(全职/兼职)」。
我们会在3个工作日内筛选简历并联系面试,合则约聊!杭州本地候选人可安排线下办公场地参观,远程候选人支持线上面试。
期待热爱技术、向往智能生活的你,和我们一起用代码点亮千万家庭的智慧未来!

收起阅读 »

壁纸生成器

HTML5

我手机上的App图标颜色很杂乱,换什么壁纸都觉得不好看。

后来用这个生成了一张非常深的灰色壁纸,一下就显得所有图标都和谐了。

https://iris.findtruman.io/web/wallpaper_generator?share=L

我手机上的App图标颜色很杂乱,换什么壁纸都觉得不好看。

后来用这个生成了一张非常深的灰色壁纸,一下就显得所有图标都和谐了。

https://iris.findtruman.io/web/wallpaper_generator?share=L

抖音在线去水印

HTML5+

我在抖音上看到很多超棒的旅游风景短片,想用来做动态壁纸。

用这个下载了高清无水印版,设置成壁纸后,手机屏幕都变得赏心悦目了。

https://iris.findtruman.io/web/dy-qsy?share=L

我在抖音上看到很多超棒的旅游风景短片,想用来做动态壁纸。

用这个下载了高清无水印版,设置成壁纸后,手机屏幕都变得赏心悦目了。

https://iris.findtruman.io/web/dy-qsy?share=L

局域网文件传输

HTML5

我在两个浏览器之间用它来传文件。比如在Chrome上登录了账号,想把下载的文件发到另一个没登录的浏览器里,用这个就特别快。

https://iris.findtruman.io/web/lan-drop?share=L

继续阅读 »

我在两个浏览器之间用它来传文件。比如在Chrome上登录了账号,想把下载的文件发到另一个没登录的浏览器里,用这个就特别快。

https://iris.findtruman.io/web/lan-drop?share=L

收起阅读 »

壁纸生成器

HTML5+

我用它给我的代码编辑器生成了一张深灰色的背景图,替换掉了默认的黑色。感觉长时间看屏幕,眼睛舒服多了,代码都看得更清楚了。

https://iris.findtruman.io/web/wallpaper_generator?share=L

我用它给我的代码编辑器生成了一张深灰色的背景图,替换掉了默认的黑色。感觉长时间看屏幕,眼睛舒服多了,代码都看得更清楚了。

https://iris.findtruman.io/web/wallpaper_generator?share=L

经验分享 鸿蒙隐私弹窗如何处理

鸿蒙征文

基本背景

鸿蒙元服务不需要自己处理隐私弹窗,鸿蒙强制要求结束隐私协议托管,关联 client_id 之后会自动弹窗隐私协议,下面内容主要针对鸿蒙应用开发用户。

鸿蒙应用上架需要配置隐私协议、用户协议。这部分内容可参考 鸿蒙如何设置隐私协议弹窗

这里做技术实现说明。

内容已迁移到 鸿蒙如何设置隐私协议弹窗

补充:编写 uts 插件

如果应用需要提供不同意隐私协议也要提供基础内容浏览服务,可参考下面 uts 代码单独处理用户动态接受、拒绝隐私协议,主动唤起隐私协议相关逻辑。

编写 uts 插件,完成弹窗,这里提供代码片段。

新建 uts 插件,比如 hamrony-privacy-dialog ,编辑 uni_modules/harmony-privacy-dialog/utssdk/app-harmony/index.uts

填写下面代码,这段代码导出了三个方法,和官方的 ets 代码完全一致,检查隐私协议信息、获取签署状态、主动唤起隐私弹窗。页面中引入代码调用即可。

import { privacyManager } from '@kit.AppGalleryKit';  
// import { hilog } from '@kit.PerformanceAnalysisKit';  
import { BusinessError } from '@kit.BasicServicesKit';  

export const getInfo = () => {  
    let err = ''  
    try {  
        let appPrivacyManageInfo : privacyManager.AppPrivacyMgmtInfo = privacyManager.getAppPrivacyMgmtInfo();  
        console.info(0, 'TAG', "Succeeded in getting AppPrivacyManageInfo type: " + appPrivacyManageInfo["type"]);  
        let privacyLinkInfoArray : privacyManager.AppPrivacyLink[] = appPrivacyManageInfo.privacyInfo;  
        console.info(0, 'TAG', "Succeeded in getting AppPrivacyManageInfo size = " + privacyLinkInfoArray.length);  
        for (let i = 0; i < privacyLinkInfoArray.length; i++) {  
            console.info(0, 'TAG', "Succeeded in getting AppPrivacyManageInfo type = " + privacyLinkInfoArray[i]["type"] + ", version = " + privacyLinkInfoArray[i]["versionCode"] + ", url = " + privacyLinkInfoArray[i]["url"]);  
        }  
    } catch (error) {  
        err = error.message  
        console.error(0, 'TAG', "GetAppPrivacyManageInfoPublic exception code: " + error.code + ", exception message: " + error.message);  
    }  
    return err  
}  

export const getStatus = () => {  
    try {  
        let appPrivacyResults : privacyManager.AppPrivacyResult[] = privacyManager.getAppPrivacyResult();  
        console.info(0, 'TAG', "Succeeded in getting AppPrivacyResult size = " + appPrivacyResults.length);  
        for (let i = 0; i < appPrivacyResults.length; i++) {  
            console.info(0, 'TAG', "Succeeded in getting AppPrivacyResult type = " + appPrivacyResults[i]["type"] + ", version = " + appPrivacyResults[i]["versionCode"] + ", result = " + appPrivacyResults[i]["result"]);  
        }  
    } catch (error) {  
        console.error(0, 'TAG', "GetAppPrivacyResultPublic exception code: " + error.code + ", exception message: " + error.message);  
    }  
}  
export const requestPrivacy = () => {  
    try {  
        const uiContext = UTSHarmony.getUIAbilityContext()  
        // const uiContext = this.getUIContext().getHostContext() as common.UIAbilityContext;  
        privacyManager.requestAppPrivacyConsent(uiContext).then((consentResult : privacyManager.ConsentResult) => {  
            let appPrivacyResults : privacyManager.AppPrivacyResult[] = consentResult["results"];  
            for (let i = 0; i < appPrivacyResults.length; i++) {  
                console.info(0, 'TAG', "GetAppPrivacyResult type = " + appPrivacyResults[i]["type"] + ", version = " + appPrivacyResults[i]["versionCode"] + ", result = " + appPrivacyResults[i]["result"] + ", signingTimeStamp = " + appPrivacyResults[i]["signingTimeStamp"]);  
            }  
        }).catch((error : BusinessError<Object>) => {  
            console.error(0, 'TAG', `requestAppPrivacyConsent failed, Code: ${error.code}, message: ${error.message}`);  
        });  
    } catch (error) {  
        console.error(0, 'TAG', "requestAppPrivacyConsent exception code: " + error.code + ", exception message: " + error.message);  
    }  
}

4 页面中引入

    import {  
        getInfo,  
        getStatus,requestPrivacy  
    } from '@/uni_modules/harmony-privacy-dialog'
继续阅读 »

基本背景

鸿蒙元服务不需要自己处理隐私弹窗,鸿蒙强制要求结束隐私协议托管,关联 client_id 之后会自动弹窗隐私协议,下面内容主要针对鸿蒙应用开发用户。

鸿蒙应用上架需要配置隐私协议、用户协议。这部分内容可参考 鸿蒙如何设置隐私协议弹窗

这里做技术实现说明。

内容已迁移到 鸿蒙如何设置隐私协议弹窗

补充:编写 uts 插件

如果应用需要提供不同意隐私协议也要提供基础内容浏览服务,可参考下面 uts 代码单独处理用户动态接受、拒绝隐私协议,主动唤起隐私协议相关逻辑。

编写 uts 插件,完成弹窗,这里提供代码片段。

新建 uts 插件,比如 hamrony-privacy-dialog ,编辑 uni_modules/harmony-privacy-dialog/utssdk/app-harmony/index.uts

填写下面代码,这段代码导出了三个方法,和官方的 ets 代码完全一致,检查隐私协议信息、获取签署状态、主动唤起隐私弹窗。页面中引入代码调用即可。

import { privacyManager } from '@kit.AppGalleryKit';  
// import { hilog } from '@kit.PerformanceAnalysisKit';  
import { BusinessError } from '@kit.BasicServicesKit';  

export const getInfo = () => {  
    let err = ''  
    try {  
        let appPrivacyManageInfo : privacyManager.AppPrivacyMgmtInfo = privacyManager.getAppPrivacyMgmtInfo();  
        console.info(0, 'TAG', "Succeeded in getting AppPrivacyManageInfo type: " + appPrivacyManageInfo["type"]);  
        let privacyLinkInfoArray : privacyManager.AppPrivacyLink[] = appPrivacyManageInfo.privacyInfo;  
        console.info(0, 'TAG', "Succeeded in getting AppPrivacyManageInfo size = " + privacyLinkInfoArray.length);  
        for (let i = 0; i < privacyLinkInfoArray.length; i++) {  
            console.info(0, 'TAG', "Succeeded in getting AppPrivacyManageInfo type = " + privacyLinkInfoArray[i]["type"] + ", version = " + privacyLinkInfoArray[i]["versionCode"] + ", url = " + privacyLinkInfoArray[i]["url"]);  
        }  
    } catch (error) {  
        err = error.message  
        console.error(0, 'TAG', "GetAppPrivacyManageInfoPublic exception code: " + error.code + ", exception message: " + error.message);  
    }  
    return err  
}  

export const getStatus = () => {  
    try {  
        let appPrivacyResults : privacyManager.AppPrivacyResult[] = privacyManager.getAppPrivacyResult();  
        console.info(0, 'TAG', "Succeeded in getting AppPrivacyResult size = " + appPrivacyResults.length);  
        for (let i = 0; i < appPrivacyResults.length; i++) {  
            console.info(0, 'TAG', "Succeeded in getting AppPrivacyResult type = " + appPrivacyResults[i]["type"] + ", version = " + appPrivacyResults[i]["versionCode"] + ", result = " + appPrivacyResults[i]["result"]);  
        }  
    } catch (error) {  
        console.error(0, 'TAG', "GetAppPrivacyResultPublic exception code: " + error.code + ", exception message: " + error.message);  
    }  
}  
export const requestPrivacy = () => {  
    try {  
        const uiContext = UTSHarmony.getUIAbilityContext()  
        // const uiContext = this.getUIContext().getHostContext() as common.UIAbilityContext;  
        privacyManager.requestAppPrivacyConsent(uiContext).then((consentResult : privacyManager.ConsentResult) => {  
            let appPrivacyResults : privacyManager.AppPrivacyResult[] = consentResult["results"];  
            for (let i = 0; i < appPrivacyResults.length; i++) {  
                console.info(0, 'TAG', "GetAppPrivacyResult type = " + appPrivacyResults[i]["type"] + ", version = " + appPrivacyResults[i]["versionCode"] + ", result = " + appPrivacyResults[i]["result"] + ", signingTimeStamp = " + appPrivacyResults[i]["signingTimeStamp"]);  
            }  
        }).catch((error : BusinessError<Object>) => {  
            console.error(0, 'TAG', `requestAppPrivacyConsent failed, Code: ${error.code}, message: ${error.message}`);  
        });  
    } catch (error) {  
        console.error(0, 'TAG', "requestAppPrivacyConsent exception code: " + error.code + ", exception message: " + error.message);  
    }  
}

4 页面中引入

    import {  
        getInfo,  
        getStatus,requestPrivacy  
    } from '@/uni_modules/harmony-privacy-dialog'
收起阅读 »

个人开发者承接app、小程序、网页外包,全职外包接单

小程序 外包接单

全职在家承接外包,多年外包经验,个人开发者,绝对实惠靠谱,有很多款线上应用(度是自己开发的,自己独立完成,可查)

可做商城类,社交类,工具类,任务平台类,mes 类,扫码收银/分账交易类 等,除了游戏和带颜色的,其他度可以开发

可承接安卓/IOS、各个端的小程序、H5网页、PC网页开发,从前端到后端,我全度会,一条龙服务

掌握技术
前端:uniapp 、uniappx、vue
后端:Golang 、php

uniapp 及 uniappx 开发的作品均有上架appstore

小程序方面也有很多

有需要开发的并能看得上我的请联系我哈

vx:wu1020yt

继续阅读 »

全职在家承接外包,多年外包经验,个人开发者,绝对实惠靠谱,有很多款线上应用(度是自己开发的,自己独立完成,可查)

可做商城类,社交类,工具类,任务平台类,mes 类,扫码收银/分账交易类 等,除了游戏和带颜色的,其他度可以开发

可承接安卓/IOS、各个端的小程序、H5网页、PC网页开发,从前端到后端,我全度会,一条龙服务

掌握技术
前端:uniapp 、uniappx、vue
后端:Golang 、php

uniapp 及 uniappx 开发的作品均有上架appstore

小程序方面也有很多

有需要开发的并能看得上我的请联系我哈

vx:wu1020yt

收起阅读 »