跨平台应用开发进阶(六十一):uni-app 跨平台技术开发框架可行性调研

news2024/11/26 23:27:58

文章目录

    • 一、流程类
    • 二、研发类(uni-app框架)
    • 三、心得分享(研发踩坑&uni-app踩坑)
    • 四、拓展阅读

一、流程类

  1. IOS和安卓企业开发者账户申请流程(申请渠道、需要提供的相关证明、审核时间等)。

答:uni-app使用HBuliderX作为开发IDE,支持邮箱、密码方式注册,方便快捷。
在这里插入图片描述

  1. uni-app企业开发者账户申请流程。

答:不涉及

  1. 安卓和IOS发布上线流程(怎么发布主流应用商店)。

答:运维相关同事负责。

  1. 如果出现紧急情况代码是如何回滚的?

答:源码管理采用Git,使用Git命令行方式(git revert)实现代码回滚。

  1. 发布流程都有哪些规范要注意,大部分审核失败的原因是什么?

答:APP上架前,需熟知待上架应用市场安全合规准则, 目前中金火炬APP已上架华为、应用宝、APP Store应用市场。其中过渡索权(确保只保留应用需要的权限,否则会需要举证)、第三方SDK引入导致的其他问题(例如引入极光推送应用频繁自启动问题)、隐私政策提示前已索权、iOS中权限索取未添加描述信息、iOS要提交的审核资料图片等信息与实际提交的APP截图相一致、代码反编译风险、资源文件泄露风险等,提交上架申请后,相关平台会出具检测报告,详情可参考安全合规检测报告。


考虑到苹果审核员工作场所可能在国外(美国加利福尼亚州、爱尔兰科克),也有可能在上海,可通过访问IP得知审核员所在国家,国外的话,由于服务器测的安全策略,导致境外IP无法访问或出现访问延迟、抖动问题。故考虑采取增大请求响应等待时间及域名/IP网络测试。可通过设置配置文件实现:
“networkTimeout” : {
“request” : 120000 // 设置请求超时时间为2min
},

二、研发类(uni-app框架)

  1. App和Webview H5是如何交互的,有无现成的基础库如 JSBridge?

答:uni-app APP若存在页面嵌套,可使用web-view实现,并引用uni.webview.1.5.4.js SDK实现了双端通信。也可通过 window.postMessage 实现双端通信,详参博文《跨平台应用开发进阶(十七) :uni-app 内嵌 H5 应用并实现双端通信》
示例代码如下:
currentWebview.evalJS(${_funName}(${JSON.stringify(_data)}));
window.msgFromUniapp= function(arg) {
console.log(‘<<<<<<<<<<<<>>>>>>>>>>:’, arg);
console.log(‘<<<<<<<<<<<<<JSON.stringify(arg)>>>>>>>>>>>:’, JSON.stringify(arg));
}
// 向应用发送消息
uni.postMessage({
data: {
order: ‘playRecord’
}
});
APP 通过 @message接收
message(arg) {
console.log(‘-------------------message-------------------:’, JSON.stringify(arg))
this.sendMsgToWebview();
},

  1. 是否有现成的基础工具方法,比如提升开发效率、调试工具库等?

答:H5中可引入vconsole进行问题定位。
DCloud有丰富的插件市场,包括官方与个人,付费与收费插件,根据项目所需进行引用。
在这里插入图片描述

  1. VDI开发IOS代码,如何调试?

答:代码同步至本地真机调试,或使用虚拟机。

  1. 引入SDK需要支持全平台吗?还是指定各端?(比如H5端的神策sdk被小程序包裹再被app包裹的场景)

答:视SDK提供方是否支持全平台,若H5端的神策sdk被小程序包裹再被app包裹,应用间属于跳转关联关系,只要集成H5端的神策sdk。

  1. App是否可以跳转微信小程序指定页面,跳到小程序之后是否有方式返回?

答:未进行技术预研。

  1. uniApp调优配置方案、比如编译速度、打包资源有些控制等?

答:uni-app

  1. uni-app是否支持不发版审核更新?

答:支持,使用 uni-app 开发跨终端应用,可将代码编译到iOS、Android、微信小程序等多个平台,升级时也需考虑多平台同步升级。其中,uni-app发布为小程序的升级模式较简单,只需将开发完的代码提交小程序后台,待审核通过后用户将自动升级。uni-app支持wgt 资源升级包升级,不支持资源升级包情况如下:

  • SDK 部分有调整,比如新增了 Maps 模块等,不可通过此方式升级,必须通过整包的方式升级。
  • 原生插件的增改,同样不能使用此方式。
  • 对于老的非自定义组件编译模式,这种模式已经被淘汰下线。但以防万一也需要说明下,老的非自定义组件编译模式,如果之前工程没有 nvue 文件,但更新中新增了 nvue 文件,不能使用此方式。因为非自定义组件编译模式如果没有nvue文件是不会打包weex引擎进去的,原生引擎无法动态添加。自定义组件模式默认就含着weex引擎,不管工程下有没有nvue文件。
  • ⚠️安装 wgt 资源包成功后,必须执行 plus.runtime.restart(),否则新的内容并不会生效。
  • 如果App的原生引擎不升级,只升级wgt包时,需要注意测试wgt资源和原生基座的兼容性⚠️。平台默认会对不匹配的版本进行提醒,如果自测没问题,可以在manifest.json中配置忽略提示。
  • ⚠️应用市场为了防止开发者不经市场审核许可,给用户提供违法内容,对热更新大多持排斥态度。
  • 🙅‍♂️上架审核期间不要弹出热更新提示;
  • ⚠️热更新内容使用https下载,避免被三方网络劫持;
  • 🙅不要更新违法内容、不要通过热更新破坏应用市场的利益,比如iOS的虚拟支付要老老实实给Apple分钱。
    详参博文《跨平台应用开发进阶(三): uni-app 实现资源在线升级/热更新》
  1. los打包发布流程

答:运用uni-app IDE HBuilderX自带的云打包功能实现打包。

  1. 微信授权App登录需要申请哪些资质?

答:需要注册微信开发者账号。详参微信开发者账号申请详情。

  1. 有没有好的ui框架推荐?

答:APP使用uni-app自带的UI框架已经能够覆盖基本的样式需求,其他UI框架可选择 Vant UI、uView、Nut UI、Mint UI等。考虑到UI库整体体积比较大,为减少APP安装包大小,UI库引入时建议按需引入。

  1. WebViewH5页面是如何跳转uni-app指定页面的?

答:uni-app 通过URLScheme方式唤醒APP 。 window.location = installUrl + ?urlpa=${this.urlpa}
:urlpa=“‘t’ + encodeURIComponent(JSON.stringify(urlData))”
详参博文《跨平台应用开发进阶(十六) :uni-app实现URLScheme方式唤醒APP》

  1. H5需要引入uniapp的sdk吗?比如跳转app的指定页面并携带参数?

答:不需要

  1. uniapp有集成登录功能插件可以使用吗?有什么坑?

答: DCloud前端团队在插件市场提供有云端一体登录模板,需要调用其云函数,不建议使用,建议自己实现。

  1. 在uniapp插件市场引入插件想修改插件的内容如何修改?

答:取决于插件是否支持源码查看,大部分插件是不支持源码查看的,只支持使用,不支持个性化修改。

  1. uniapp uni_modules需要每次都重新下载吗?如果本地修改了需要怎样维护?

答:uni_modules依赖包不需要每次都重新下载。如果本地修改了建议推送至远程仓库进行管理维护。

  1. 安卓打包需要自己申请私有证书吗?私有证书和云端证书的区别?

答:安卓测试的话,私有证书可以自己通过工具生成,云端证书也是通过云服务器工具生成。上架证书需要在组上架包时提供,用于标识APP ID。

三、心得分享(研发踩坑&uni-app踩坑)

  1. uni-app框架开发的一些限制,比如哪些效果可能实现不了,是否有其它的解决方案?

答:uni-app采用Vue作为底层技术栈,为考虑平台兼容性,有些功能本身是H5不支持的,例如APP视频播放的小窗播放功能,需应用原生开发技术栈实现,也可通过插件市场插件实现,不过考虑到插件市场有大部分为个人开发者,插件功能测试充分性未知,插件质量不好保证。

  1. 一些开发的坑、兼容问题

答:APP开发需要做到系统、机型、版本的兼容性,布局方面采用Flex弹性布局,减少样式属性值常量设置,同时需要考虑iOS刘海屏。

  1. 把APP分一个小程序版本,大概需要多长时间?工作量大致多少?

答:考虑到APP与小程序在组件和API、样式、事件绑定、数据绑定、路由实现方面的差异性,将APP现有功能搬到小程序,工作量大致为APP的80%。将APP现有功能搬到PC Web,工作量大致为APP的65%。

  1. 2套APP安装,生产、验收APP,需生成2套证书。包名、签名验证APP唯一性。
  2. 不要频繁已上架申请,APP Store会怀疑恶意测试,封号

四、拓展阅读

  • 《uni-app选型评估23问》
  • 《跨平台应用开发进阶(二十六) :忐忑悲壮路,心酸出坑史——记第一次iOS艰辛上架路》
  • 《跨平台应用开发进阶(十七) :uni-app 内嵌 H5 应用并实现双端通信》
  • 《DCloud插件市场》
  • 《跨平台应用开发进阶(十六) :uni-app实现URLScheme方式唤醒APP》
  • 《跨平台应用开发进阶(三): uni-app 实现资源在线升级/热更新》

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

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

相关文章

95、Image Restoration with Mean-Reverting Stochastic Differential Equations

简介 主页&#xff1a;https://github.com/Algolzw/image-restoration-sde 扩散模型终于在去噪、超分辨率等应用了。 这是一种基于随机微分方程的通用图像恢复方法&#xff0c;关键结构包括均值还原SDE&#xff0c;该SDE将高质量图像转换为具有固定高斯噪声的平均状态的降级…

怎么压缩png图片的大小?4个简单高效工具分享

怎么压缩png图片的大小&#xff1f;大家都知道jpg和png是目前电脑上最主流的两大图片文件格式&#xff0c;jpg图片的体积比较小&#xff0c;因为它属于有损压缩的图片格式&#xff0c;而png图片的体积相对就要大很多了&#xff0c;因为png属于无损压缩的图片格式。大家也同样知…

Redission实现分布式锁之源码解析

Redission实现分布式锁之源码解析 1、Redission实现分布式锁之源码解析1.1 分布式锁-redission功能介绍1.2 分布式锁-Redission快速入门1.3 分布式锁-redission可重入锁原理1.4 分布式锁-redission锁重试和WatchDog机制1.5 分布式锁-redission锁的MutiLock原理 1、Redission实现…

5G+工业互联网观察——应用篇

5G与工业互联网的结合是5G应用的重要领域&#xff0c;前一篇《5G工业互联网观察——政策篇》我们对5G工业互联网的相关政策进行了整理和分析&#xff0c;本篇继续从应用的角度整理目前的典型场景和重点行业&#xff0c;并进行简单的分析。 文 | 无界 全文4500字&#xff0c;预计…

原创 | 一文读懂蒙特卡洛算法

作者&#xff1a;陈之炎本文约2000字&#xff0c;建议阅读10分钟 本文介绍了蒙特卡洛算法。 蒙特卡洛算法&#xff08;Monte Carlo algorithm&#xff09;是一种基于随机采样的计算方法&#xff0c;其基本思想是通过生成随机样本&#xff0c;利用统计学原理来估计数学问题的解。…

MySQL实战之主从数据同步机制

主从同步的重要性&#xff1a; 解决数据可靠性的问题需要用到主从同步&#xff1b;解决 MySQL 服务高可用要用到主从同步&#xff1b;应对高并发的时候&#xff0c;还是要用到主从同步。 一、MySQL 主从同步流程 当客户端提交一个事务到 MySQL 的集群&#xff0c;直到客户端收…

《JavaEE初阶》Servlet

《JavaEE初阶》Servlet 文章目录 《JavaEE初阶》Servlet编写一个Servlet的helloworld1. 认识Maven并创建maven项目:2. 引入依赖:3.创建目录:4. 编写代码:5. 打包6. 部署7.验证 优化打包部署操作.常见的错误: ServletAPI:利用ajax构造请求.使用第三方工具postman构造请求HttpSer…

KDXL-A工频输电线路参数测试仪

一、简介 由我公司开发、研制的专门用于输电线路工频参数测量的高精度仪器&#xff0c;对于输电线路的一系列工频参数可进行精密的测量。 KDXL-A输电线路参数测试仪具有体积小、重量轻、测量准确度高、稳定性好、操作简便易学等优点,可取代以往利用多表法测量线路参数的方法&am…

springboot-热部署

什么是热部署 事先我创建一个springboot项目&#xff0c;引入web依赖。 当我冷启动的时候&#xff0c;日志如下&#xff1a; D:\tools\jdk-17.0.3\bin\java.exe -XX:TieredStopAtLevel1 -noverify -Dspring.output.ansi.enabledalways -Dcom.sun.management.jmxremote -Dspr…

【神经网络】tensorflow -- 期中测试试题

题目一&#xff1a;&#xff08;20分&#xff09; 请使用Matplotlib中的折线图工具&#xff0c;绘制正弦和余弦函数图像&#xff0c;其中x的取值范围是&#xff0c;效果如图1所示。 要求&#xff1a; (1)正弦图像是蓝色曲线&#xff0c;余弦图像是红色曲线&#xff0c;线条宽度…

洛谷B2097 最长平台

最长平台 题目描述 对于一个数组&#xff0c;其连续的相同段叫做一个平台&#xff0c;例如&#xff0c;在 1 1 1&#xff0c; 2 2 2&#xff0c; 2 2 2&#xff0c; 3 3 3&#xff0c; 3 3 3&#xff0c; 3 3 3&#xff0c; 4 4 4&#xff0c; 5 5 5&#xff0c; 5 5 5&…

加密解密软件VMProtect入门使用教程(四):准备项目

VMProtect是新一代软件保护实用程序。VMProtect支持德尔菲、Borland C Builder、Visual C/C、Visual Basic&#xff08;本机&#xff09;、Virtual Pascal和XCode编译器。 同时&#xff0c;VMProtect有一个内置的反汇编程序&#xff0c;可以与Windows和Mac OS X可执行文件一起…

【2023 年第三届长三角高校数学建模竞赛】B 题 长三角新能源汽车发展与双碳关系研究 新能源汽车销售相关数据160M+下载

【2023 年第三届长三角高校数学建模竞赛】B 题 长三角新能源汽车发展与双碳关系研究 新能源汽车销售相关数据160M下载 1 题目 《节能与新能源汽车技术路线图 2.0》提出至 2035 年&#xff0c;新能源汽车市场占比超过 50%&#xff0c;燃料电池汽车保有量达到 100 万辆&#xff…

想做外贸却没有头绪?来看看这篇文章

海关总署公布最新数据&#xff1a;今年前4个月&#xff0c;我国外贸进出口总值13.32万亿元&#xff0c;同比增长5.8%&#xff0c;其中出口7.67万亿元&#xff0c;同比增长10.6%&#xff1b;进口5.65万亿元&#xff0c;同比增长0.02%。月度调查显示&#xff0c;出口订单增加的企…

图解LeetCode——238. 除自身以外数组的乘积

一、题目 给你一个整数数组 nums&#xff0c;返回 数组 answer &#xff0c;其中 answer[i] 等于 nums 中除 nums[i] 之外其余各元素的乘积 。 题目数据 保证 数组 nums之中任意元素的全部前缀元素和后缀的乘积都在 32 位 整数范围内。 请不要使用除法&#xff0c;且在 O(n…

SoringBoot——pom文件:starter

先来看一看&#xff1a; 这次我们来介绍SpringBoot的pom文件的另一个好玩的地方&#xff1a;starter。 starter的中文含义是启动器&#xff0c;所以有时候我们在Maven仓库找依赖的时候&#xff0c;如果开启了自动翻译就会经常会看见一个奇怪的词叫做某某弹簧启动器&#xff0…

2023年河北沃克高位承重货架最新中标项目|中国沈阳某大型集团高位重型横梁式货架项目建设初期

【项目名称】高位重型横梁式货架项目 【承建单位】河北沃克金属制品有限公司 【合作客户】中国沈阳某大型集团 【建设时间】2023年5月上旬 【建设地域】中国沈阳地区 【项目客户需求】 本次沈阳高位重型横梁式货架项目合作的沈阳某大型集团中国变压器行业规模最大的制造企…

AIGC的发展与机遇

陈老老老板&#x1f9b8; &#x1f468;‍&#x1f4bb;本文专栏&#xff1a;赠书活动专栏&#xff08;为大家争取的福利&#xff0c;免费送书&#xff09;试一下文末赠书&#xff0c;讲一些科普类的知识 &#x1f468;‍&#x1f4bb;本文简述&#xff1a;本篇内容的引用都已征…

Protobuf: 高效数据传输的秘密武器

当涉及到网络通信和数据存储时&#xff0c;数据序列化一直都是一个重要的话题&#xff1b;特别是现在很多公司都在推行微服务&#xff0c;数据序列化更是重中之重&#xff0c;通常会选择使用 JSON 作为数据交换格式&#xff0c;且 JSON 已经成为业界的主流。但是 Google 这么大…

《理解了实现再谈网络性能》读书笔记

文章目录 内核是如何接收网络包的1.1 Linux⽹络收包总览1.2 linux 启动创建ksoftirqd进程网络子系统初始化协议栈注册网卡驱动初始化启动网卡 1.3 迎接数据的到来硬中断处理ksoftirqd 内核线程处理软中断网络协议栈处理IP协议层处理 完整流程 内核是如何接收网络包的 1.1 Linu…