智慧养殖APP及小程序多端跨平台技术选型分析

这篇具有很好参考价值的文章主要介绍了智慧养殖APP及小程序多端跨平台技术选型分析。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

智慧养殖APP及小程序多端跨平台技术选型分析

1. 框架选择
------Uniapp------

优势:使用Vue.js语法,学习成本较低;一套代码,能同时支持APP/H5/小程序,是较为全面的跨平台框架。

​ 开发小程序的不二选择,考虑到国内小程序应用广泛,之后可能会有所涉及。

劣势:开发App端时,性能有瓶颈,但是也可以胜任大部分的场景,天花板并不低。

​ HbuilderX开发体验较差(可以使用VSCode代为开发,目前已有可行方案)。

可以通过vue-cli命令行创建uni-app项目,使用VSCode代为开发,使用网页进行H5模式查看效果,使用HbuilderX进行真机调试。

采用vue-cli创建项目和使用HbuilderX可视化界面创建项目并没有本质区别,cli创建的项目是传统的node项目,HbuilderX创建的项目只能在HbuilderX中运行。具体可查看官网介绍。

// 全局安装vue-cli
npm install -g @vue/cli
// 创建node项目
npx degit dcloudio/uni-preset-vue#vite my-vue3-project
------Taro------

京东团队多端统一开发解决方案,个人感觉和Uniapp各有各的优势,现阶段已经同时支持React和Vue;在App端使用的是React Native渲染引擎。

Taro框架同样有很多人在用,和Uniapp一样,搜索引擎资料较多。

同Uniapp一样,跨平台方案目前都不完善,适合以小程序、H5为主,App为辅,不涉及太过复杂的交互的项目。

------Flutter------

优势:google出品,渲染引擎强大,性能优异,上限高。

​ 新兴技术栈,反响较好,在开发效率、性能以及跨平台体验上都有不错表现。

劣势:最大的劣势是不支持小程序的开发。

​ 使用的是dart开发语言,虽然属于强类型语言,相比js有独特的优势,但是需要一定的学习成本。

------原生开发------

官方原生支持,功能强大健全,性能和体验是最好的。但是学习成本高,Android和IOS需要分别开发,开发,测试,维护成本都偏高,直接淘汰。

------其他------

其他App跨平台方案,比如React Native、Hippy学习成本较高,也没有明显优势,不推荐。

------总结------

简单需求的App和小程序开发可以使用Uniapp或者Taro,这两个框架目前来说是使用人数最多的小程序框架,社区活跃,可以满足开发需求,随着硬件的越来越好H5的体验也会越来越好。

Flutter的优势在于APP端,渲染性能高,Android/IOS跨平台体验好。

2. Uniapp注意事项
H5正常但App异常的可能性
  1. css异常:
  • 不支持的选择器

非H5端不支持*选择器;

body的元素选择器请改为page,同样,div和ul和li等改为view、span和font改为text、a改为navigator、img改为image…

  • 组件和页面样式相互影响

非H5端默认并未启用 scoped,如需要隔离组件样式可以在 style 标签增加 scoped 属性,H5端为了隔离页面间的样式默认启用了 scoped

  • webview浏览器兼容性

vue页面在App端,默认是被系统的webview渲染的(不是手机自带浏览器,是rom的webview),在较老的手机上,比如Android4.4、5.0或iOS8,很多css是不支持的,所以不要使用太新的css,会导致界面异常。

注意这不意味着不能使用flex,Android4.4也支持flex,只是不要使用太新的css。

可以找Android4.4手机或使用pc模拟器实际测试下,大多数国产Android模拟器都是4.4或5.0。

从 uni-app 2.5.3 起,Android端支持引入腾讯x5浏览器内核,可以抹平低端Android的浏览器兼容性问题,详见x5使用指南

小程序不存在浏览器兼容问题,它自带了一个很大的Webview。所以如果你的H5和小程序界面正常,而Android低端机App界面异常,且App没有使用x5引擎,那基本就可以判定是因为css兼容性。

app端nvue页面,不存在浏览器兼容问题,它自带一个统一的原生渲染引擎,不依赖webview。

Android4.4对应的webview是chrome37。各端浏览器内核的详情查阅,参考:关于手机webview内核、默认浏览器、各家小程序的渲染层浏览器的区别和兼容性

  • 原生组件层级问题 H5没有原生组件概念问题,非H5端有原生组件并引发了原生组件层级高于前端组件的概念,要遮挡video、map等原生组件,请使用cover-view组件。
  1. 使用了非H5端不支持的API 小程序和App的js运行在jscore下而不是浏览器里,没有浏览器专用的js对象,比如document、xmlhttp、cookie、window、location、navigator、localstorage、websql、indexdb、webgl等对象。

如果你的代码没有直接使用这些,那很可能是引入的三方库使用了这些。如果是后者,去插件市场搜索替代方案。要知道非H5端的js是运行在一个独立的js core或v8下,并不是运行在浏览器里。

从HBuilderX 2.6起,App端新增了renderjs,这是一种运行在视图层的js,vue页面通过renderjs可以操作浏览器对象,进而可以让基于浏览器的库直接在uni-app的App端运行,诸如echart、threejs,详见:renderjs

  1. 使用了非H5端不支持的vue语法,受小程序自定义组件限制的写法,详见
  2. 不要在引用组件的地方在组件属性上直接写 style=“xx”,要在组件内部写样式
  3. url(//alicdn.net)等路径,改为url(https://alicdn.net),因为在App端//是file协议
  4. 很多人在H5端联网时使用本地测试服务地址(localhost或127.0.0.1),这样的联网地址手机App端是无法访问的,请使用手机可访问的IP进行联网
3. 选择Vue3进行开发

UniApp同样支持Vue3,现阶段可能会存在各种问题,但是相比Vue2拥有全方位的优势。

4. 请求接口的封装

框架内自带uni.request请求方法,但是为了对接口进行统一管理,对请求方法进行封装,同时在请求之前和返回的数据做相应的处理,类似于常规Vue项目中对axios进行封装并添加拦截器。

5. Vue2和Vue3中API Promise化 的区别
// Vue 3 转 Vue 2, 在 main.js 中写入以下代码即可
function isPromise(obj) {
  return (
    !!obj &&
    (typeof obj === 'object' || typeof obj === 'function') &&
    typeof obj.then === 'function'
  )
}

uni.addInterceptor({
  returnValue(res) {
    if (!isPromise(res)) {
      return res
    }
    const returnValue = [undefined, undefined]
    return res
      .then((res) => {
        returnValue[1] = res
      })
      .catch((err) => {
        returnValue[0] = err
      })
      .then(() => returnValue)
  }
})

加粗样式文章来源地址https://www.toymoban.com/news/detail-608191.html

到了这里,关于智慧养殖APP及小程序多端跨平台技术选型分析的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 开发跨平台APP,是用Flutter还是React Native开发框架?

     随着移动互联网的飞速发展,对于开发人员而言,如何快速地开发出兼容不同平台(iOS、Android)的应用,成为了一个重要的问题。 跨平台应用程序开发框架的好处: 1. 一个App适用于多个设备; 2. 一个App适用于多个平台; 3. 一个App可以在多个应用商店中发布; 4. 只需编写

    2024年02月15日
    浏览(77)
  • flutterui构建工具,Java+性能优化+APP开发+NDK+跨平台技术

    面试的时候除了算法题,其他被怼成弟弟,没想到面试官给过了,一天面完三面并且一周之后收到了oc,觉得自己非常的幸运,终于得到了大厂的认可(虽然是颗白菜)。这里建议网友如果有自己亮点的话,还是可以勇敢大胆的尝试一下大厂,毕竟除了实力之外,运气与机遇也占

    2024年03月15日
    浏览(60)
  • 跨平台的桌面应用程序开发框架Electron | 开源日报 0906

    Stars: 109.3k License: MIT Electron 是一个基于 Node.js 和 Chromium 的开源框架,允许使用 JavaScript、HTML 和 CSS 编写跨平台的桌面应用程序。它被 Atom 编辑器等众多应用程序所采用。该项目具有以下核心优势: 跨平台:Electron 提供了 macOS、Windows 和 Linux 三个主要操作系统的二进制文件。

    2024年02月09日
    浏览(60)
  • [MAUI程序设计] 用Handler实现自定义跨平台控件

    @ 目录 Handler 与Xamarin.Forms实现的区别 为什么要用Handler代替Renderer 解耦 生命周期管理 更细粒度的控制 用Effect来实现呢? 自定义手势监听控件 在各平台上实现TouchRecognizer iOS中的实现 Android中的实现 Windows中的实现 创建控件 使用控件 最终效果 项目地址 今天来谈一谈MAUI跨平台

    2024年02月07日
    浏览(56)
  • Vue.js + Electron 的跨平台桌面应用程序开发

    本文介绍了 Vue.js 和 Electron 的基本特点和原理,并分析了它们在桌面应用程序开发中的优势和应用场景。在基于 Vue.js 和 Electron 的桌面应用程序开发实践中,本文详细介绍了项目的搭建和配置,包括环境的准备、项目的初始化和依赖的安装等步骤。然后,本文介绍了使用 Vu

    2024年02月13日
    浏览(104)
  • 【uniapp&微信小程序】跨平台使用echarts的方案选择&踩坑

    使用Uniapp(vue)开发微信小程序,想用echarts图表实现类似github热力图的效果。 简要列一些可行或不可行的方案。 有echarts官网提供的跨平台方案:在微信小程序中使用 ECharts 简单易用,图表齐全 renderjs-echarts-demo 可参考的使用总结 render.js+echarts echarts图表在移动端的应用 支持

    2024年02月13日
    浏览(138)
  • WEB跨平台桌面程序构建工具对比(Electron、Tauri、Wails)

    WEB 跨平台 桌面应用程序 顾名思义就是用 JavaScript、HTML、CSS 等前端技术构建跨平台的桌面应用,WEB 负责 GUI 渲染并与后端(如 Node.js、Python、Rust 等)交互,从而突破自身无法操作 OS 层级资源的限制。其实现在如火如荼的 小程序 原理也类似,只是把后端换成宿主 APP (如微信

    2024年02月05日
    浏览(52)
  • web前端项目使用electron打包成跨平台桌面端程序(Windows)

    Electron是一个使用 JavaScript、HTML 和 CSS 构建桌面应用程序的框架。 嵌入 Chromium 和 Node.js 到 二进制的 Electron 允许您保持一个 JavaScript 代码代码库并创建 在Windows上运行的跨平台应用 macOS和Linux——不需要本地开发 经验。 在使用Electron进行开发之前,您需要安装 Node.js。 我们建

    2024年02月16日
    浏览(83)
  • Flutter:引领移动开发新潮流,跨平台应用程序的终极解决方案

    Flutter是由Google开发的一款开源移动应用开发框架,它可以帮助开发者快速高效地构建跨平台的移动应用程序。Flutter基于Dart编程语言,具有简单易学、高效灵活的特点,并且可以与现有的Android和iOS应用进行集成。本文将介绍Flutter的基本概念、开发环境搭建、基础组件、生命

    2024年02月04日
    浏览(86)
  • 跨平台应用开发进阶(五十)uni-app ios web-view嵌套H5项目白屏问题分析及解决

    应用 uni-app 框架开发好APP上架使用过程中,发现应用经过长时间由后台切换至前台时,通过 webview 方式嵌套的H5页面发生白屏现象。 任何手机设备上,当手机内存不足时,os都会回收资源。一般是先回收后台打开的资源。如果当前应用占用的资源过高,当前应用也有可能崩溃

    2024年02月14日
    浏览(55)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包