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

news2024/9/23 15:27:21

背景

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.coloradmin.cn/o/2090567.html

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

相关文章

有了它 一键掌握Vue新版本!

声明:此篇为 ai123.cn 原创文章,转载请标明出处链接:https://ai123.cn/#1 你是否也在为Vue生态中的快速更新而焦头烂额?ue 3.4版本发布,带来模板解析器重写和响应系统重构,提升了性能和开发体验。测试框架如…

《深入理解JAVA虚拟机(第2版)》- 第3章 - 学习笔记

第3章 垃圾收集器与内存分配策略 3.1 概述 垃圾收集器要完成三件事情: 什么样的内存需要回收什么时候回收如何回收 垃圾收集器主要关注的区域是:Java堆和方法区。因为程序计数器、虚拟机栈、本地方法栈是线程私有的,随着线程的结束所使用的…

2d椭圆拟合学习

算法来自论文《 Direct Least Square Fitting of Ellipses》 《NUMERICALLY STABLE DIRECT LEAST SQUARES FITTING OF ELLIPSES》 相关文章 论文阅读:直接拟合椭圆 Direct Least Square Fitting of Ellipseshttps://zhuanlan.zhihu.com/p/645391510Fitting Elli…

rsyslog交叉编译

文章目录 1、依赖库列表2、编译建议3、编译3.1、编译libestr3.2、编译libfastjson3.3、编译zlib3.4、编译libuuid3.5、编译libgpg-error3.6、编译libgcrypt3.7、编译openssl3.8、编译curl3.9、编译rsyslog该文档描述了如何交叉编译rsyslog到arm64嵌入式平台。 1、依赖库列表 li…

UE5开发——射击武器类拾取

整体框架: 拾取武器 要在 Unreal Engine 5 (UE5) 中实现一个按 E 键拾取武器的功能,您可以遵循以下步骤: ### 步骤 1: 创建拾取物品的基础类 1. 在 Content Browser 中创建一个新的 C 类,继承自 AActor 或者 AStaticMeshActor。…

pytorch交叉熵损失函数

nn.CrossEntropyLoss 是 PyTorch 中非常常用的损失函数,特别适用于分类任务。它结合了 nn.LogSoftmax 和 nn.NLLLoss(负对数似然损失)的功能,可以直接处理未经过 softmax 的 logits 输出,计算预测值与真实标签之间的交叉熵损失。 1. 交叉熵损失的原理 交叉熵损失衡量的是…

Visual Studio Code离线汉化

从官网下载Visual Studio Code安装包后, 下载Visual Studio Code:https://code.visualstudio.com/ 若因网络等问题无法在线安装语言包,可以尝试离线安装: 从官网下载语言包: Extensions for Visual Studio family …

线上考试系统部署(thirty-six day)

一、线上考试系统的数据 虚拟化技术部署 1、部署前端服务器 (1)将资源上传到服务器 scp -r dist/ root192.168.1.11:~ (2)创建基础容器 在服务器上 systemctl start docker.servicedocker pull centosdocker run -it --name …

基于RAG多层次的多代理架构来处理时序任务

《Agentic Retrieval-Augmented Generation for Time Series Analysis》这篇文章提出了一种新颖的时间序列分析方法,称为Agentic Retrieval-Augmented Generation(RAG)框架。它通过多层次的多代理架构来处理时间序列任务,其中主代…

【银河麒麟高级服务器操作系统】soft lockup软锁实例详细记录分析及处理建议

了解更多银河麒麟操作系统全新产品,请点击访问 麒麟软件产品专区:https://product.kylinos.cn 开发者专区:https://developer.kylinos.cn 文档中心:https://documentkylinos.cn 现象描述 启nginx服务,但是报了sof…

WebRTC协议下的视频汇聚融合技术:EasyCVR视频技术构建高效视频交互体验

视频汇聚融合技术是指将来自不同源、不同格式、不同网络环境的视频流进行集中处理、整合和展示的技术。随着视频监控、远程会议、在线教育、直播娱乐等领域的快速发展,视频数据的规模急剧增长,对视频处理能力和效率提出了更高要求。视频汇聚融合技术通过…

海外云手机实现海外社媒矩阵营销

如何利用社交媒体平台有效推广和带货,正成为众多企业和创业者关注的焦点。海外云手机解决各种网络和设备问题,成为跨境电商海外社媒矩阵建设的必备工具。 跨境电商的核心在于通过互联网连接不同国家的消费者与商品。社交媒体作为连接消费者与品牌的桥梁&…

vue nginx部署 配置 解决href = ‘/login路由‘ 跳转404问题

示例场景 <a :hrefthis.repDownloadUrl>下载平台</a><a href"/join" target"_blank">入驻平台</a><a href"/index" target"_blank" class"btn_login" style"color:#fff">nginx部署…

Datawhale X 李宏毅苹果书 AI夏令营 Task 2

课程内容 &#xff08;一&#xff09;术语解释 一 . Sigmoid函数与Hard Sigmoid 函数 &#xff08;1&#xff09;Sigmoid函数 Sigmoid函数&#xff0c;也称为逻辑函数&#xff08;Logistic function&#xff09;&#xff0c;是一种在数学、生物学、信息科学、神经网络等领域广…

【原子提交:IDEA实践】

原子提交&#xff1a;IDEA实践 背景先前情况idea实际操作方式一&#xff1a;Squash Commits方式二&#xff1a;Undo Commit 后再 Commit方式三&#xff1a;Resetpush前操作后悔药——回到squash commit之前&#xff1a; 背景 临近发版&#xff0c;某位老哥的个线上MR包含多个b…

YOLOv8环境搭建、创建数据集、训练推理教程(超级详细)

yolov8和yolov10 是一个流派&#xff0c;和yolov5区别还挺大&#xff0c;所以尝试使用yolov8来进行模型训练&#xff0c;下面是详细使用流程&#xff1a; 一、环境搭建 1.1 Anaconda安装 Anaconda是一个强大的开源数据科学平台,它将很多好的工具整合在一起&#xff0c;极大地…

怎么在CSDN上赚钱?

CSDN平台上有多种方式可以赚钱&#xff0c;以下是其中几种常见的&#xff1a; 写作赚钱&#xff1a;CSDN平台鼓励用户积极创作原创技术博客&#xff0c;通过博客的阅读量和转发量来获取广告收益&#xff1b;用户还可以发表付费文章或参与付费专栏&#xff0c;在文章的阅读量和付…

Flask+LayUI开发手记(六):树型表格的增删改查

树型表格的增删改查功能与数据表格的是完全一致&#xff0c;就是调用layui-form表单组件实现数据输入再提交&#xff0c;比较大的区别是树型节点的编辑&#xff0c;都需要有上级节点的输入&#xff0c;而这个上级节点的展示&#xff0c;必须是以树型方式展示出来。当然&#xf…

【Qt应用】Qt编写简易文件管理系统

目录 引言 一、准备工作 二、设计思路 三、创建项目和基本界面 四、目录浏览功能 实现效果 五、文件操作功能 5.1 设置添加文件与删除文件按钮 5.2 添加文件槽函数 5.3 删除文件槽函数 5.4 实现效果 六、文件搜索功能 6.1 准备工作 6.2 搜索按钮槽函数 6.3 实现…

[Algorithm][综合训练][合并k个已排序的链表][dd爱旋转][小红取数]详细讲解

目录 1.合并k个已排序的链表1.题目链接2.算法原理讲解 && 代码实现 2.dd爱旋转1.题目链接2.算法原理详解 && 代码详解 3.小红取数1.题目链接2.算法原理详解 && 代码实现 1.合并k个已排序的链表 1.题目链接 合并k个已排序的链表 2.算法原理讲解 &…