跨平台应用开发进阶(六十一):uni-app 跨平台技术开发框架可行性调研_开发一个uniapp项目的社会可行性分析

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

  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 UIuViewNut UIMint 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会怀疑恶意测试,封号

四、拓展阅读

JavaScript

  • js的基本类型有哪些?引用类型有哪些?null和undefined的区别。

  • 如何判断一个变量是Array类型?如何判断一个变量是Number类型?(都不止一种)

  • Object是引用类型嘛?引用类型和基本类型有什么区别?哪个是存在堆哪一个是存在栈上面的?

  • JS常见的dom操作api

  • 解释一下事件冒泡和事件捕获

  • 事件委托(手写例子),事件冒泡和捕获,如何阻止冒泡?如何组织默认事件?

  • 对闭包的理解?什么时候构成闭包?闭包的实现方法?闭包的优缺点?

  • this有哪些使用场景?跟C,Java中的this有什么区别?如何改变this的值?

  • call,apply,bind

  • 显示原型和隐式原型,手绘原型链,原型链是什么?为什么要有原型链

  • 创建对象的多种方式

  • 实现继承的多种方式和优缺点

  • new 一个对象具体做了什么

  • 手写Ajax,XMLHttpRequest

  • 变量提升

  • 举例说明一个匿名函数的典型用例

  • 指出JS的宿主对象和原生对象的区别,为什么扩展JS内置对象不是好的做法?有哪些内置对象和内置函数?

  • attribute和property的区别

  • document load和document DOMContentLoaded两个事件的区别

  • JS代码调试

  • 开源分享:【大厂前端面试题解析+核心总结学习笔记+真实项目实战+最新讲解视频】

  • 25
    点赞
  • 25
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值