跨平台移动开发实战(十一)------各平台(chrome+android+ios+webos)上的项目结构

跨平台移动开发实战(一)------总体架构和技术路线 最近两个月以来工作之余一直在做一件事情,就是把现在的产品移植到各主流移动平台上。其实需求很简单,就是想让现有的产品能在各大移动平台上有个端,让客户能移动办公。这个需求大概也是个大众化普遍的需求,于是乎就饶有兴趣地把它当作一个主题比较深入地研究了一下。两个时间自己没事儿就倒腾一下,做了一个像模像样的产品,并覆盖到IOS、Andriod、WebOS、Chrome和Windows Phone(还在开发中 阅读详情

由于需要在把应用打包成各平台上的native app,所以需要按照各个平台的项目结构来组装应用,所以虽然主体程序都是基于HTML5开发,但依然需要在各个平台上都构建一套项目,下面介绍一下我开发的这么几个版本的项目结构:

  • Chrome
  • Android
  • IOS
  • Webos

1)Chrome

Chrome非常简单,标准的HTML代码结构,只不过添加一个manifest.json描述文件,就能使其成为一个Chrome APP,项目结构如下图所示:

manifest.json:

{
  "name": "Starteam chrome",
  "description": "Starteam mobile chrome version.",
  "version": "1",
  "app": {
    "launch": {
      "local_path": "app.html"
    }
  },
  "icons": {
    "24": "css/images/icon_24.png",
    "48": "css/images/icon_48.png",
    "128": "css/images/icon_128.png"
  },
  "permissions": [
    "unlimited_storage",
    "notifications"
  ]
}

之后在chrome的扩展程序里安装此项目文件夹即可。

2)Android

Android版本的项目结构基于Phonegap推荐的即可:

其中:

  • src:android native相关的类文件
  • assets/www:程序主体,包含HTML, JS, CSS和图片等静态资源
  • AndroidManifest.xml:项目描述文件

3)IOS

其中:

  • cordovaLib.xcodeproj:phonegap框架源码
  • www:程序主体,包含HTML, JS, CSS和图片等静态资源
  • Plugins:phonegap自定义插件
  • Supporting Files:项目资源和描述文件

4)Webos

这里没用mojo或enyo框架,因此,项目结构相对简单:

其中appinfo.json是项目描述文件:

{
	"id": "com.hp.starteam.mobile.webos",
	"version": "1.0.0",
	"vendor": "hp",
	"type": "web",
	"main": "app.html",
	"title": "starteam-mobile-webos",
	"icon": "icon.png",
	"uiRevision": 2
}

基于此文件可以把应用打包为webos的native app.

Apple_IOS、Android、WebOS系统体系架构对比 立即下载

相关推荐

Win11任务栏图标消失?快速恢复指南

任务栏图标消失是Windows 11操作系统中常见的问题之一,但通过上述方法,用户通常可以轻松解决这一问题。无论是重启Windows资源管理器、使用命令提示符修复、检查系统更新和设置,还是考虑重装系统,都可以帮助用户恢复任务栏图标的正常显示。希望本文的介绍能对用户有所帮助,让Windows 11的使用更加顺畅和愉快。

mmoo_python的博客 5407

OpenGL ES2之Android&iOS跨平台开发教程(一)Android端构建

本文目标是开发一款在Android&IOS上运行的跨平台图形应用,供各位初学者参考,同时也是过去几个月自己的学习总结,阅读本文前需要读者已有一定的OpenGL ES知识,如果没有,可以看看这个教程讲得不错。网上大多OpenGL ES教程,要么是仅适于Android的(Java),要么就是仅适于iOS的(Objective-C),其实OpenGL ES是跨平台的,使用C++可共用大部分代码,一次编写,两处运行,岂不美哉?...

屠龍之技的专栏 6004

RAG——RAG 索引(文档解析技术)

本文介绍了RAG系统中文档解析的关键技术,重点分析了如何通过LangChain的Document Loaders处理多种格式文档。文章指出高质量文档解析对RAG系统效果的决定性作用,并详细讲解了PDF、TXT、Word等常见格式的解析方法。作者提供了代码示例和Gitee开源项目链接,特别强调了PDF解析的深入方案,同时介绍了相关依赖库的安装配置。文章还展示了如何定义通用文档加载方法,为开发者提供了实用的技术参考。

小志的博客 750

ios android 跨平台工具,15个很优秀的跨平台的移动开发工具

跨平台的移动开发指的是通过特定方式开发出来的移动应用可以用在多种移动平台,如iOS、Android 以及 WindowsPhone。利用现有的高质量移动框架来构建移动 Web 应用程序已成为非常容易,本文包含15个最佳的跨平台移动开发工具。1. Pusher2. RhoMobile3. Weex4. NativeScript5. CloudRail6. Kony7. Rikulo8. Phoneg...

weixin_39982537的博客 1798

HALCON基于描述符的模板匹配(未标定)

HALCON基于不标定描述符的模板匹配

king_linj的博客 890

深入解析luckyExcel处理xlsx与xls文件的实战技巧

本文深入解析了使用luckyExcel库在前端处理.xlsx与.xls文件的实战技巧。针对.xlsx文件,可直接调用API转换;对于老旧的.xls格式,则需结合SheetJS进行预处理。文章详细介绍了核心API的使用、两种格式的处理流程、数据提取方法以及性能优化建议,为开发在线Excel编辑应用提供了完整解决方案。

cherry的博客 816

OpenGL ES2之Android&iOS跨平台开发教程(二)iOS端构建

上一篇介绍了在Android端构建OpenGLES,这一篇介绍在iOS端调用OpenGLES。

屠龍之技的专栏 1971

利用Civil3D装配设计器(SAC)建设高度形状自适应挡土墙

之前的模型都是点线,最后加一个形状,形成面。再根据现场测得的挡土墙的墙脚的点生成中心线(alignment),在中心线的基础上生成在现有地面(existing ground level)的高程(profile)。简单的说,该墙的墙趾啊,墙踵啊,基底下面那个把儿啊,都是随着高度变化的,而高度是随着下面这个高程图变化的。接着出现角度和Y的文本框,角度92,y 值随便写一个,然后重要的是,高程目标选路面(优先于Y值)。意思是P2的高度,也就是路面的高程,减去P10,墙脚高程,再减去墙脚埋进地里的深度0.8m。

测量老覃 的博客 1126

Flutter页面跳转

Flutter页面跳转 1、创建Flutter app工程,默认的main.dart文件如下: import 'package:flutter/material.dart'; void main() { runApp(MyApp()); } class MyApp extends StatelessWidget { // This widget is the root of your application. @override Widget build(BuildContex.

博客,是nsacer先森的 490

42、Windows Server Update Services(WSUS)全面指南

本文全面介绍了Windows Server Update Services(WSUS)的安装、配置、管理与优化策略。内容涵盖WSUS基础认知、客户端更新问题解决、多服务器架构设计、计算机分组策略、更新审批与报告查看,并深入探讨了SSL加密配置、性能优化、与其他系统(如AD和SCCM)集成以及常见故障排查方法。通过本指南,IT管理员可高效部署和管理企业级软件更新,提升安全性和运维效率。

cicd6pipeline的博客 96

从 30 天试用到企业级落地,2026 年学习和试用 SAP AI 的完整路线图

摘要:SAP AI产品体系存在试用版本与商业版本的边界模糊问题,需区分业务嵌入AI(如Joule)、开发者工具(SAP Build Code)和AI基础平台(Generative AI Hub)三个层级。建议学习路径:1)通过SAP Learning专区掌握理论框架;2)优先使用30天Generative AI Hub基础试用体验模型编排;3)结合90天BTP试用账户开发完整应用。特别注意免费计划已陆续停止,需以最新官方文档为准。开发者应重点关注AI如何与SAP技术栈(CAP、Fiori等)集成,而非单纯功

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 112

跨平台移动开发实战(八)------移动客户端网络通信

服务器端搭建好后,移动客户端就需要基于HTTP和Websocket来和服务器端通信,HTTP就基于Ajax来实现,Websocket就得靠各个移动平台浏览器对Websocket的支持,基本的开发大家查查文档就比较容易掌握,这里我着重谈三点: Ajax安全策略移动平台对Websocket的支持文件传输 1)Ajax安全策略 大家都知道Ajax存在跨域的限制,而基于Phonegap的离线开发

走向架构师之路 7371

【3天快速入门WPF】8-数据绑定基础

以下是一个简单的 WPF 数据绑定示例,使用两个TextBox控件分别表示Name和Age来进行进行数据绑定试验。运行程序后,你会看到初始界面中TextBox 中显示初始名字 “张三”,TextBox 中显示初始年龄 “25”。在 XAML 中创建一个简单的界面,包含一个 TextBox 用于输入名字,一个 TextBox 用于显示年龄。当你在 TextBox 中修改名字时,Person 对象的 Name 属性会被自动更新,反之亦然。它的主要作用是为控件及其子控件提供一个默认的数据源,用于数据绑定。

Zy100Papa的博客 969

免费 iOS 侧载工具 iloader 全流程指南:从连接设备到完成安装,一次讲清楚

iloader 是一款免费的跨平台 iOS 侧载工具,基于 Tauri 构建,不用越狱就能把 SideStore、LiveContainer 或者任意 IPA 签名安装到 iPhone / iPad 上,还会自动处理配对文件、个人证书与 App ID。很多新手卡住的地方,其实是流程里的固定几步:电脑认不认设备、Apple ID 能不能登录、免费账号的证书额度够不够。下面按真实使用顺序,把这整条链路

gitblog_09094的博客 503

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

Outlook Express 6 (OE6) for Win7/Win8/Win10

英文版 Outlook Express6.0, 兼容Win7/Win10/WinXP,解压就可用。

nanoScrollerJS浏览器兼容性指南:解决99%的跨平台问题

想要为你的网站添加优雅的Mac OS X Lion风格滚动条吗?nanoScrollerJS是一个轻量级的jQuery插件,专门用于实现简洁美观的自定义滚动条效果。然而,在实际使用中,浏览器兼容性问题常常成为开发者的困扰。本指南将为你详细解析nanoScrollerJS的完整浏览器兼容性解决方案,帮助你轻松应对各种跨平台挑战!🚀 ## 为什么选择nanoScrollerJS? nanoScr

gitblog_00033的博客 490

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

使用Cordova 3.3.0在Android或iOS上部署Chrome应用

开发者现在可以使用Apache Cordova 3.3.0在Android和iOS上部署Chrome应用了。\u0026#xD;\n在Adobe发布PhoneGap 3.3六周之后,Cordova 3.3.0现身于PhoneGap Build云服务中。除了支持Android KitKat外,Cordova 3.3.0还支持在Android环境中使用Chrome远程调试Webview,以及在iOS环...

啊啊啊啊2 323

webOS将会运行在多种设备之上,Enyo将可用于所有主流浏览器

本文来源于我在InfoQ中文站翻译的文章,原文地址是:http://www.infoq.com/cn/news/2012/01/webOS-Enyo-2HP决定通过采用标准的Linux内核来延伸webOS的触角,其Enyo开发框架也将能运行在所有主流浏览器之上。此外,Enyo 2.0业已开源。Enyo是个面向对象的JavaScript框架,最初用于webOS与WebKit。去年12月,HP宣布开源...

weixin_33858249的博客 122

js如何判断是ios还是android,js如何判断当前运行环境是ios webview还是android webview?...

var os = this.os = {}, browser = this.browser = {},webkit = ua.match(/Web[kK]it[\/]{0,1}([\d.]+)/),android = ua.match(/(Android);?[\s\/]+([\d.]+)?/),osx = !!ua.match(/\(Macintosh\; Intel /),ipad = ua....

weixin_39797532的博客 307

判断浏览器是手机端还是pc端 以及判断安卓还是iOS

function IsPC() { var userAgentInfo = navigator.userAgent; var Agents = [“Android”, “iPhone”, “SymbianOS”, “Windows Phone”, “iPad”, “iPod”]; var flag = true; for (var v = 0; v < Agents.length; v++)...

weixin_44673034的博客 831

android js运行环境,js如何判断当前运行环境是ios webview还是android webview?

var os = this.os = {}, browser = this.browser = {},webkit = ua.match(/Web[kK]it[\/]{0,1}([\d.]+)/),android = ua.match(/(Android);?[\s\/]+([\d.]+)?/),osx = !!ua.match(/\(Macintosh\; Intel /),ipad = ua....

weixin_34684705的博客 416
上一篇: 跨平台移动开发实战(十)------与native集成
下一篇: 跨平台移动开发实战(十二)------HTML5安全
cutesource
博客等级 码龄17年 5041粉丝 151原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值