ios和android交互差异,Android与ios的系统交互模式差异

一、导航逻辑的差异

大家都知道ios没有实体返回键,所有返回都是通过导航栏的back按钮(图1)来完成。所以,ios应用大多数情况下,只提供单一路径,无论什么样的程序,都只有一个窗口,这个窗口用于放置程序的内容和功能,用户不会意识到这个窗口。在ios设备中,用户会觉得程序是依次呈现的一屏又一屏图像。所以ios的返回控制的是应用的页面。

要注意的是ios系统应用内的导航与系统导航分隔开,ios应用内一般无[退出]选项,通过home按键返回到主屏界面及退出应用。

6a1d58d7e60d83553a6f819aac00dfa8.png

图1

与ios不同,Android是有物理返回按钮的,点击返回按钮,控制的不光是一个页面,而是包括了上一步操作。比如说:进入页面A,点击文本框弹出键盘。那么点击返回按键就是收起键盘。所以,android的返回逻辑是按照倒叙的时间流进行的,返回控制的不仅是页面,还有动作。

另外,要注意的是,在android4.0开始,提出了一个向上的概念,就是导航栏标题前的一个小箭头,点击这个小箭头,可以回到该页面的上一层级。所以现在导航就变成应用内和系统的双向导航。比如:当上一个查看的界面是当前界面的父层级时,点击“返回”按键和点击“向上”按键的结果是一样的。然而,与“向上”按键不同的是,“向上”按键可以确保用户停留在应用程序中,而“返回”按键可以让用户回到系统首页,甚至会回到另一个应用户程序。(图2)

9aee53e641083f30e1a9a8dc0081cee5.png

二、布局的差异

ios平台界面布局(图3)

c51908ff0b96a04ef37ce525b501cac7.png

图3

Android平台界面布局(图4)

edc9b066fc09d410f7f67424ae96d37f.png

图4

三、应用之间联系的差异

众所周知,iOS是一个封闭的系统,而Android是一个开放的系统。我们可以比喻iOS每一个应用都是一个小房间,每个应用都在自己的房间里做自己的事情,互相之间不进行任何来往。而Android则是一个大大的办公区,每个应用虽然也有自己的工位,但是可以互相串门或者借用东西。到了iOS6的时候可以支持应用直接互相跳转了,但那也仅限于你跳出去了,就不再回来了,也就是说到了那个房间你就是那个房间的人了,与之前的房间没有关联了。

这样的差异意味着,iOS应用的权限变得很低,身为应用的你既不能修改系统的一些属性(除非越狱了),也不能修改其他应用的内容。而Android的一款应用不但可以控制系统的一些操作,还可以控制其他应用执行某些特定的操作。

这种差异会让安卓上的应用设计有了更多的可能,身为设计师的你可以根据这一特性设计很多不错的功能,比如系统美化或者系统优化,杀毒,拦截电话等功能,而iOS就不能。但是这也让Android系统面临了很严峻的安全问题,所以安卓上各种优化和杀毒软件很流行。

四、多任务的差异

多任务的差异用一句话来形容就是:iOS都是假的多任务,而Android是真的多任务。

如果你设计的应用有下载,那么iOS切换到后台下载就被暂停了,而Android不但不会暂停,你还可以设计一些偷偷在后台运行的功能!

五、分辨率的差异

适配一直是Android很头痛的问题,身为前端往往要为不同的分辨率调效果而保证界面不会变形和模糊。而分辨率问题不仅仅影响视觉这一块,对交互设计也有很大的影响。因为这些手机往往屏幕比例也是不同的,你需要考虑不同的长宽比下,你的界面布局应该是怎样的。所以在设计Android的时候,你不能要求把界面布局写死,应该尽量保证每个控件都是浮动的,而且自己能评估出各种古怪的布局下的效果。

iOS 就会好很多。iOS分辨率分为320×480,640×960,640×1136,虽然看起来也蛮多的,但是界面的比例基本上没有什么变化。所以对于交互上的布局影响并不是很大,视觉设计师也可以通过脚本缩小裁图简单的解决问题。

六、设计风格的差异

设计风格是这两个客户端自己独特的个性,设计风格不单影响的是视觉设计的层面,对交互设计也非常的重要。尤其是在考虑动效,拟物化交互的时候需要重视。iOS的设计风格偏向拟物化风格,这个拟物化不光是视觉上做出很多拟物的小按钮小控件的,为了配合视觉,你往往在交互上也可以加一些生动有趣的内容。

比如说像最新的Path,进入商店时遮阳板会有一个收起的效果,小卡片也会根据重力感应而摇摆。如果交互上就能体现出平台的设计风格的话,无疑会非常讨好用户,增加产品细节上的亮点。

Android平台就简单一些了,在整体的布局和交互形式和iOS差不多的情况下,尽量的简洁,呈现一种科幻的风格即可以了。Android平台尽量少用拟物化的动效,因为Android系统对于动画效果的渲染比较差,如果太复杂的话可能会让界面非常的卡。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
是的,为了实现在Web页面中与iOSAndroid原生应用程序之间的交互,可以使用JSBridge。JSBridge是一个桥接工具,可以将JavaScript与原生应用程序之间的通信连接起来。 在iOS中,可以使用JavaScriptCore框架和WKWebView来实现JSBridge。在Android中,可以使用WebView和JavaScriptInterface来实现JSBridge。 具体来说,需要在原生应用程序中创建一个JavaScriptInterface类,该类可以实现JavaScript与原生代码之间的通信。然后在Web页面中,可以通过JavaScript调用原生应用程序中的方法。 例如,在iOS中,可以使用以下代码创建一个JavaScriptInterface类: ``` @objc class JSInterface: NSObject { weak var webView: WKWebView? init(webView: WKWebView) { self.webView = webView super.init() } @objc func showToast(_ message: String) { let alertController = UIAlertController(title: "Toast", message: message, preferredStyle: .alert) let okAction = UIAlertAction(title: "OK", style: .default, handler: nil) alertController.addAction(okAction) self.webView?.viewController?.present(alertController, animated: true, completion: nil) } } ``` 然后在Web页面中,可以通过以下代码调用原生应用程序中的showToast方法: ``` window.webkit.messageHandlers.jsInterface.postMessage({action: 'showToast', message: 'Hello world!'}); ``` 在Android中,可以使用以下代码创建一个JavaScriptInterface类: ``` public class JSInterface { private Context context; public JSInterface(Context context) { this.context = context; } @JavascriptInterface public void showToast(String message) { Toast.makeText(context, message, Toast.LENGTH_SHORT).show(); } } ``` 然后在Web页面中,可以通过以下代码调用原生应用程序中的showToast方法: ``` window.jsInterface.showToast('Hello world!'); ``` 通过这种方式,可以实现JavaScript与iOSAndroid原生应用程序之间的交互

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值