如何为PhoneGap应用程序提供两种不同的UX/UI
How to have two different UX/UI for a PhoneGap application
我正在构建一个PhoneGap跨平台混合应用程序
在我的应用程序中,我支持iPad和iPhone
两种设备的用户界面不同,但业务逻辑相同。
所以问题是,如何为两种不同的设备使用两个不同的用户界面(HTML/CSS),并为这两种设备使用通用的业务逻辑代码(JavaScript)。
我只想重写应用程序的UX/UI并重用与业务逻辑相关的代码,我该如何设计我的应用程序来做到这一点。
首先,您需要检测正在运行的平台。有很多方法可以实现这一点,但我只举一个简单的例子(并假设您也在使用jQuery)
if ( navigator.userAgent.match(/iPad/i)) {
$('head').append('<link rel="stylesheet" href="ipad.css">');
}else if (navigator.userAgent.match(/iPod/i) || navigator.userAgent.match(/iPhone/i) ){
$('head').append('<link rel="stylesheet" href="iphone.css">');
}else{
// up to you here
}
有更好的方法来检测平台,但这对初学者来说是可行的。
一些JavaScript前端框架(如Ionic、Sencha Touch)支持主题,您可以使用这些框架根据设备类型呈现不同的用户体验,同时共享逻辑。为您的JavaScript提供一个模型-视图-控制器体系结构也会有所帮助。
与其自己尝试匹配用户代理,您可能想使用Cordova设备插件来确定您在哪个设备上运行并做出相应的反应,您还可以使用CSS媒体查询,就像使用常规响应web应用程序/网站一样。如果你想区分手机和平板电脑,并且不使用可以为你做到这一点的JS框架,那么使用"is tablet"插件可能会有所帮助。
在平台层面(而不是设备层面),Cordova的一个功能是"合并"概念,它可以让你在每个平台上创建新的CSS/JS/images/whatever,并在构建过程中将其与内容或www文件夹合并。
相关文章:
- 有没有任何方法可以将控制器从文件加载到ui路由器$stateProvider中
- jQuery UI自动完成突然停止工作
- 如何使用skip参数使用angular ui引导进行服务器端分页
- AngularJS UI路由器不能像ng路由器那样工作
- 我可以更改剑道UI网格吗's的外键值
- 剑道UI内联编辑:如何在点击其他按钮时隐藏按钮
- Rails/JSON:如何将JSON用于jquery UI自动完成表单
- 停止jQuery UI滑块移动超过给定值
- 混合 ui-sref 和 $state.go 在 Angular ui-router 中进行状态转换
- Jquery UI自动完成无法工作
- 语义ui如何使用javascript启用或禁用下拉列表
- jquery ui滑块上的滑块值
- jQuery UI可排序-多连接列表拖动
- 如何在Angular UI网格中选择下一行
- 对具有ui typeahead的对象中的值执行orderBy
- AngularJS ui路由器html5模式中断路由
- jQuery UI and Fuel UX conflict
- 从UI / UX开发中放弃jQuery
- 如何为PhoneGap应用程序提供两种不同的UX/UI
- 除了UI/UX之外,Mac Safari和Windows Safari之间有什么区别吗