APP长文本内容编辑器功能实现方案

背景

CSDN APP 中原有编辑器页面为纯H5适配,整体用户交互体验差,如何优化APP端编辑器用户体验是我们团队需要思考的问题。下面我们以iOS为例展开讨论。

一、方案调研

我们分析了几款国内内容发布的APP,如知乎、今日头条、简书,让我们来看看他们是如何实现APP编辑器功能的。

1、知乎APP编辑器实现方案

在这里插入图片描述
从图上可以看出:
a、知乎APP编辑器的输入标题内容为原生实现
b、知乎APP编辑器的正文部分为WebView
c、知乎APP编辑器的工具栏全部由原生实现

2、今日头条APP编辑器实现方案

在这里插入图片描述
从图上可以看出:
a、今日头条APP编辑器的输入标题内容与正文部分均为WebView实现
b、今日头条APP编辑器的工具栏全部由原生实现

3、简书APP编辑器实现方案

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

从图上可以看出:
a、简书APP富文本与MarkDown编辑器的内容区域(标题+正文)均为WebView实现,MarkDown预览功能也由WebView实现
b、简书APP编辑器的工具栏全部由原生实现
c、通过查看简书APP编辑器文件发现,编辑器是本地加载HTML JS等资源文件

综上所述,可以看出APP基本上都是是通过WebView + 原生交互方式来实现编辑器功能

方案选择

1、也是用Hybrid方案,由原生与H5混合开发。
2、将H5资源打包放到远端,APP首次打开应用,从远端下载编辑器资源包,本地加载资源文件。
3、如果资源版本发生变化,将从远程再次下载,覆盖原来本地资源。
4、通过JSBrigde 通信来实现工具栏与内容区域交互。

在这里插入图片描述
在这里插入图片描述

方案实现

1、资源下载

if (是否首次下载资源 || 是否需要更新资源) {//下载请求[CNNetManager getEditorResource:url {}];
}

2、功能结构

在这里插入图片描述

在这里插入图片描述

3、效果展示

请添加图片描述
请添加图片描述
请添加图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/878317.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

华为海思招聘-芯片与器件设计工程师-数字芯片方向- 机试题——(共九套)(每套四十题)

华为海思招聘-芯片与器件设计工程师-数字芯片方向- 机试题-题目分享——共九套(每套四十题) 岗位——芯片与器件设计工程师 岗位意向——数字芯片 真题题目分享,完整版带答案(有答案和解析,答案非官方,未仔细校正&am…

不再畏惧猫咪浮毛,希喂、安德迈、美的宠物空气净化器性能PK

夏天来了,宠物换毛季加上天气闷热,难消的异味和漫天乱飞的猫毛双重夹击,家里的空气质量直线下降。还是鼻炎患者的我感到非常不适,有股想把家里两只毛孩子逐出家门的冲动。每天不是梳毛就是在吸毛的路上,猫咪们还爱到处…

Redis的内存淘汰策略-noeviction

noeviction 策略简介 noeviction 是 Redis 的默认内存淘汰策略。当 Redis 的内存使用达到配置的最大限制(maxmemory)时,该策略不会删除任何现有键,而是直接返回错误。这意味着 Redis 将拒绝写操作(如 SET、LPUSH 等&a…

若依 Vue3的前后端分离系统管理 创建

RuoYi 若依官方网站 |后台管理系统|权限管理系统|快速开发框架|企业管理系统|开源框架|微服务框架|前后端分离框架|开源后台系统|RuoYi|RuoYi-Vue|RuoYi-Cloud|RuoYi框架|RuoYi开源|RuoYi视频|若依视频|RuoYi开发文档|若依开发文档|Java开源框架|Java|SpringBoot|SrpingBoot2.0…

uniapp 封装uni.login 实现全局调用

封装utils app.vue中 使用globalData 注册 utils 页面中使用方法 定义app 调用方法

win10/11环境变量path误删了如何恢复?

首先,我们可以尝试使用 set 命令来临时设置 PATH: set PATH%SystemRoot%\system32;%SystemRoot%;%SystemRoot%\System32\Wbem;%SYSTEMROOT%\System32\WindowsPowerShell\v1.0\ 这会在当前的 CMD 会话中设置 PATH。 如果你想永久设置 PATH,我…

【Docker】个人笔记

文章目录 Docker三个基本概念镜像(Image)容器(Container)仓库(Repository) Docker命令基础命令查看版本信息显示详细信息从仓库拉取镜像列出本地存储的镜像删除一个或多个镜像列出所有运行中的容器运行一个新的容器停止一个运行中的容器启动一个已停止的容器重启一个容器删除一…

零知识证明-非对称加解密算法(三)

前言 非对称加解密算法 ,就有对称加解密算法 1:对称算法 定义 对称算法,加解密双方使用一个密钥。即加密秘钥和解密秘钥相同。 对称加密又分为:分组加密和流加密 分组加密 分组加密是每次只能处理特定长度的一块数据的一类密码算法&#xff0…

回归预测|基于卷积神经网络-鲸鱼优化-最小二乘支持向量机的数据回归预测Matlab程序 CNN-WOA-LSSVM

回归预测|基于卷积神经网络-鲸鱼优化-最小二乘支持向量机的数据回归预测Matlab程序 CNN-WOA-LSSVM 文章目录 一、基本原理1. 数据预处理2. 特征提取(CNN)3. 参数优化(WOA)4. 模型训练(LSSVM)5. 模型评估和优…

搭建webRTC cotrun流媒体服务器

1.二进制安装方式 https://blog.csdn.net/yushangyong/article/details/129973873 2.docker搭建方式 https://hub.docker.com/r/coturn/coturn 版本4.6.2-r11

(最新)华为 2024 届秋招-硬件技术工程师-单板硬件开发—机试题—(共12套)(每套四十题)

(最新)华为 2024 届秋招-硬件技术工程师-单板硬件开发—机试题—(共12套)(每套四十题) 岗位——硬件技术工程师 岗位意向——单板硬件开发 真题题目分享,完整版带答案(有答案和解析&#xff0…

工业软件架构1:(QT和C++实现)

工业软件架构 - 事件驱动 - 1 0.事件总线(EventBus)1. 传感器模块(Sensor Module)2. 硬件控制模块(Hardware Control Module)3. 按键处理模块(Button Handler Module)4. 界面管理模块…

单位的一位干部去世了,该单位领导参加他的追悼会致辞是这样写的?

单位的一位干部去世了,该单位领导参加他的追悼会致辞是这样写的? 这是一篇单位工会领导参加本单位一位普通干部追悼会的致词 (范文点评) 胡某晔同志追悼会悼词 各位来宾、各位亲友: 今天,我们怀着十分沉痛…

基于深度学习的单目标跟踪系统

基于深度学习的单目标跟踪,效果吊打传统算法,3060显卡上达到实时,代码python和c两个版本都有。 基于深度学习的单目标跟踪系统是一种先进的计算机视觉技术,它可以实现实时的、高精度的目标跟踪。与传统的基于特征匹配或模板匹配的…

【宝马中国-注册/登录安全分析报告】

前言 由于网站注册入口容易被黑客攻击,存在如下安全问题: 暴力破解密码,造成用户信息泄露短信盗刷的安全问题,影响业务及导致用户投诉带来经济损失,尤其是后付费客户,风险巨大,造成亏损无底洞…

一些零碎的关于合约测试,ERC20调用的知识

文章目录 前言一、vm.startPrank(user)是什么?二、approve 方法场景设定步骤 1: 用户授权步骤 2: 合约使用授权步骤 3: 检查授权状态示例代码 ERC20 approve的源代码代码解释代码解释应用场景示例注意事项代码解释可能的重载版本 _approve事件…

关于武汉芯景科技有限公司的实时时钟芯片XJ8337开发指南(兼容DS1337)

一、芯片引脚介绍 1.芯片引脚 2.引脚描述 二、系统结构图 三、功能描述 1.时钟功能 2.闹钟功能(两个闹钟) 3.振荡器停止控制 4.频率输出(1HZ、1.096KHZ、8.192KHZ、32.768KHZ) 5.振荡器停止检测 6.闹钟中断标志 四、程序代…

MySQL 查询优化详解

在使用 MySQL 数据库时,查询性能往往是影响应用程序整体性能的关键因素。通过对查询进行优化,可以显著提升数据库的响应速度和处理能力。本文将深入探讨 MySQL 查询优化的几个重要方面,包括查询分析与执行计划(EXPLAIN&#xff09…

#C++ 笔记三

七、异常处理 1.概念 异常是程序在执行期间产生的问题。 C异常是指在程序运行时发生的特殊情况,比如下标越界等。 异常提供了一种转移程序控制权的方式。 2.抛出异常 throw语句的操作数可以是任意表达式,表达式结果的类型决定了抛出异常的类型。 …

k8s-pod 实战六 (如何在不同的部署环境中调整startupprobe的参数?)

在不同的部署环境中(如开发、测试、生产环境),你可能希望对 startupProbe 的参数进行调整,以适应不同的需求和条件。以下是几种常见的方法和实践: 方法一:使用 Kustomize 1. 目录结构 假设你的项目目录结构如下: my-app/ ├── base/ │ └── deployment.yaml …