-
如何适配iOS11和iPhoneX
2017-09-22 15:27:16随着iOS11正式版的推送和iPhoneX的即将到来,是时候为我们的App做新一轮的适配,下面我来总结下我们项目中遇到的一些问题。 导航栏 导航栏高度的变化 iOS11之前导航栏默认高度为64pt(这里高度指statusBar +...随着iOS11正式版的推送和iPhoneX的即将到来,是时候为我们的App做新一轮的适配,下面我来总结下我们项目中遇到的一些问题。
导航栏
导航栏高度的变化
iOS11之前导航栏默认高度为64pt(这里高度指statusBar + NavigationBar),iOS11之后如果设置了
prefersLargeTitles = YES
则为96pt,默认情况下还是64pt,但在iPhoneX上由于刘海的出现statusBar由以前的20pt变成了44pt,所以iPhoneX上高度变为88pt,如果项目里隐藏了导航栏加了自定义按钮之类的,这里需要注意适配一下。导航栏图层及对titleView布局的影响
iOS11之前导航栏的title是添加在
UINavigationItemView
上面,而navigationBarButton则直接添加在UINavigationBar
上面,如果设置了titleView,则titleView也是直接添加在UINavigationBar
上面。iOS11之后,大概因为largeTitle
的原因,视图层级发生了变化,如果没有给titleView赋值,则titleView会直接添加在_UINavigationBarContentView
上面,如果赋值了titleView,则会把titleView添加在_UITAMICAdaptorView
上,而navigationBarButton被加在了_UIButtonBarStackView
上,然后他们都被加在了_UINavigationBarContentView
上,如图:
图1
所以如果你的项目是自定义的navigationBar,那么在iOS11上运行就可能出现布局错乱的bug,解决办法是重写UINavigationBar
的layoutSubviews
方法,调整布局,上代码:- (void)layoutSubviews { [super layoutSubviews]; //注意导航栏及状态栏高度适配 self.frame = CGRectMake(0, 0, CGRectGetWidth(self.frame), naviBarHeight); for (UIView *view in self.subviews) { if([NSStringFromClass([view class]) containsString:@"Background"]) { view.frame = self.bounds; } else if ([NSStringFromClass([view class]) containsString:@"ContentView"]) { CGRect frame = view.frame; frame.origin.y = statusBarHeight; frame.size.height = self.bounds.size.height - frame.origin.y; view.frame = frame; } } }
再补充一点,看了简书App适配iOS11发现titleView支持
autolayout
,这要求titleView必须是能够自撑开的或实现了- intrinsicContentSize
方法- (CGSize)intrinsicContentSize { return UILayoutFittingExpandedSize; }
UIScrollView、UITableView、UICollectionView
大家在iOS11设备上运行出现最多问题应该就是
tableview
莫名奇妙的偏移20pt或者64pt了。。原因是iOS11弃用了automaticallyAdjustsScrollViewInsets
属性,取而代之的是UIScrollView
新增了contentInsetAdjustmentBehavior
属性,这一切的罪魁祸首都是新引入的safeArea
,关于safeArea
适配这篇文章iOS 11 安全区域适配总结讲的很详细,感兴趣的可以看下,我直接贴适配代码,因为低版本直接用contentInsetAdjustmentBehavior
会报警告,所有定义了如下的宏:#define adjustsScrollViewInsets(scrollView)\ do {\ _Pragma("clang diagnostic push")\ _Pragma("clang diagnostic ignored \"-Warc-performSelector-leaks\"")\ if ([scrollView respondsToSelector:NSSelectorFromString(@"setContentInsetAdjustmentBehavior:")]) {\ NSMethodSignature *signature = [UIScrollView instanceMethodSignatureForSelector:@selector(setContentInsetAdjustmentBehavior:)];\ NSInvocation *invocation = [NSInvocation invocationWithMethodSignature:signature];\ NSInteger argument = 2;\ invocation.target = scrollView;\ invocation.selector = @selector(setContentInsetAdjustmentBehavior:);\ [invocation setArgument:&argument atIndex:2];\ [invocation retainArguments];\ [invocation invoke];\ }\ _Pragma("clang diagnostic pop")\ } while (0)
还有的发现某些界面
tableView
的sectionHeader
、sectionFooter
高度与设置不符的问题,在iOS11中如果不实现-tableView: viewForHeaderInSection:
和-tableView: viewForFooterInSection:
,则-tableView: heightForHeaderInSection:
和- tableView: heightForFooterInSection:
不会被调用,导致它们都变成了默认高度,这是因为tableView
在iOS11默认使用Self-Sizing
,tableView
的estimatedRowHeight
、estimatedSectionHeaderHeight
、estimatedSectionFooterHeight
三个高度估算属性由默认的0变成了UITableViewAutomaticDimension
,解决办法简单粗暴,就是实现对应方法或把这三个属性设为0。如果你使用了
Masonry
,那么你需要适配safeArea
if (@available(iOS 11.0, *)) { make.edges.equalTo()(self.view.safeAreaInsets) } else { make.edges.equalTo()(self.view) }
iPhoneX
LaunchImage
关于iPhoneX(我就不吐槽刘海了...),如果你的APP在iPhoneX上运行发现没有充满屏幕,上下有黑色区域,那么你应该也像我一样
LaunchImage
没有用storyboard
而是用的Assets
,解决办法如图,启动图的尺寸为1125x2436
,or you can iOS开发时如何使用 Launch Screen Storyboard。
图2TabBarController
因为我们的项目用了第三方的
TabBarController
,在iPhoneX运行,tabBar看起来怪怪的...估计作者要等到猴年马月才适配iPhoneX,项目又着急上线,就自己修改了第三方,主要是tabBar
高度及tabBarItem
偏移适配,iPhoneX由于底部安全区的原因UITabBar
高度由49pt变成了83pt,可以通过判断机型来修改相关界面代码,方式有两种,通过分辨率判断:#define kDevice_Is_iPhoneX ([UIScreen instancesRespondToSelector:@selector(currentMode)] ? CGSizeEqualToSize(CGSizeMake(1125, 2436), [[UIScreen mainScreen] currentMode].size) : NO)
通过设备名称判断:
@"iPhone10,1" : @"iPhone 8",
@"iPhone10,4" : @"iPhone 8",
@"iPhone10,2" : @"iPhone 8 Plus",
@"iPhone10,5" : @"iPhone 8 Plus",
@"iPhone10,3" : @"iPhone X",
@"iPhone10,6" : @"iPhone X",
这里推荐使用UIDeviceIdentifier。目前遇到的就这些问题,后续再遇到会继续补充~
-
iOS刘海屏适配,iPhoneX、iPhone12系列导航栏高度,刘海平适配
2018-09-13 10:53:06新的iPhone发布后,我第一件想做的事就是如何适配新iPhone,新的iPhone都是刘海屏幕 先看下各个尺寸 各版本iPhone的尺寸及分辨率 于是我就做了下面的宏定义(ScreenHeight就省略了): #defineiPhoneX:(Scre.....NAVIHEIGHT:(iPhoneX ? 88 : 64)、 TABBARHEIGHT: (iPhoneX ? 83 : 49)
新的iPhone、iPhone12发布后,我第一件想做的事就是如何适配新iPhone,新的iPhone都是刘海屏幕
先看下各个尺寸
各版本iPhone的尺寸及分辨率 于是我就做了下面的宏定义(ScreenHeight就省略了):
#define iPhoneX :(ScreenHeight == 812.0f || ScreenHeight == 896.0f || ScreenHeight == 844.0f || ScreenHeight == 926.0f)
#define AdaptNaviHeight (iPhoneX ? 24 : 0) //状态栏高度
#define AdaptTabHeight (iPhoneX ? 34 : 0) //Tab bar 圆角部分高度
#define NAVIHEIGHT (iPhoneX ? 88 : 64) //导航
#define TABBARHEIGHT (iPhoneX ? 83 : 49) // 分栏
除了上面的方法外,官方的iPhone型号对照已更新,我们可以根据对照表,找到具体的手机型号。
具体方法及枚举如下
+ (NSString *)getDeviceSystemName { static dispatch_once_t one; static NSString *name; dispatch_once(&one, ^{ NSString *model = [[UIDevice currentDevice] machineModel]; if (!model) return; NSDictionary *dic = @{ @"iPhone7,2" : @"iPhone 6", @"iPhone7,1" : @"iPhone 6 Plus", @"iPhone8,1" : @"iPhone 6s", @"iPhone8,2" : @"iPhone 6s Plus", @"iPhone8,4" : @"iPhone SE", @"iPhone9,1" : @"iPhone 7", @"iPhone9,2" : @"iPhone 7 Plus", @"iPhone9,3" : @"iPhone 7", @"iPhone9,4" : @"iPhone 7 Plus", @"iPhone10,1" : @"iPhone 8", @"iPhone10,4" : @"iPhone 8", @"iPhone10,2" : @"iPhone 8 Plus", @"iPhone10,5" : @"iPhone 8 Plus", @"iPhone10,3" : @"iPhone X", @"iPhone10,6" : @"iPhone X", @"iPhone11,2" : @"iPhone XS", @"iPhone11,4" : @"iPhone XS Max", @"iPhone11,6" : @"iPhone XS Max", @"iPhone11,8" : @"iPhone XR", }; name = dic[model]; }); return name; }
tips:
1、关于每个控制器的适配,我采用了继承的方式,并且自定义了导航栏,所以导航栏的高度我在基控制器就做了控制,子控制器直接取自定义的导航,就可以做页面适配了。
2、关于自定义导航上的控件,每个按钮和标题都以导航的底部为参考,这样导航高度变了,也不会导致导航上控件的位置错误。
-
iOS使用SizeClass适配不同屏幕
2018-04-18 14:59:591、介绍图2、不同屏幕、方向对应的类型 (wAny hAny 是所有类型)2.1、iPhone4S/SE/6/X2.2、iPhone6Plus2.3、iPad(分全屏、split view)3、如何选中各种类型3.1、所有类型 如下图,仅仅选了设备,没有选择Vary for...1、介绍图
2、不同屏幕、方向对应的类型 (wAny hAny 是所有类型)
2.1、iPhone4S/SE/6/X
2.2、iPhone6Plus
2.3、iPad(分全屏、split view)
3、如何选中各种类型
3.1、所有类型
如下图,仅仅选了设备,没有选择Vary for Traits,这种类型就是 wAny hAny,在这种类型下做的操作是适配所有类型
3.2、wC hC类型(iPhone4S/SE/6/X 横屏)
3.2.1、选中设备和方向
如下图,1 选中设备iPhoneSE,2 选中横屏,3 可以看到wC hC类型出来了,4 点击Vary for Traits 开始决定是否适配wC 或 hC
3.2.2、选择wC 或 hC
如下图。Introduce Variations Based On: 如果只选中Width是 wC hAny类型,只选中Height是wAny hC类型,选中Width和Height是wC hC类型
3.2.3、进入类型模式
如图展示,已经进入wC hC类型
3.2.4、退出类型模式
操作完成后,必须点击Done Varying按钮,退出类型模式。如下图。
3.3、wC hR类型(iPhone所有设备竖屏、iPad部分Split View下一部分:可对照如上2知识点)
3.3.1、选择设备和方向
如图,1 选中iPhoneSE,2 选中横屏,3 看到wC hR类型,4 点击Vary for Traits
3.3.2、选中wC 或 hR
如下图。Introduce Variations Based On: 如果只选中Width是 wC hAny类型,只选中Height是wAny hR类型,选中Width和Height是wC hR类型 (文字似曾相识啊,哈哈,和wC hC都一样的)
3.3.3、进入类型模式、退出类型模式
所有的类型模式进入和退出都是一样的,在这就不一一描述了。
3.4、wR hC类型 (iPhone6Plus/7Plus/8Plus)
同上面类型选择
3.5、wR hR类型(iPad所有设备Full Screen)
iPad和iPhone不同的是,iPad多了个选项adaptation,有Full Screen、Split View2/3、Split View1/3,是iPad特有的分屏模式,其他操作和前面的类型操作一样。
4、一个控件适配不同类型(wC hC、wC hR、wR hC、wR hR)
4.0、在wAny hAny类型下添加一个控件
4.1、wC hC 类型下添加约束
首先切换到wC hC类型,就是选中iPhoneSE横屏的 Width和Height,然后添加约束上面10,左边0,如下图
4.2、wC hR类型下添加约束
首先取消wC hC类型,再切换到wC hR类型,就是选中iPhoneSE竖屏的 Width和Height,然后添加约束上面20,左边50,如下图
4.3、wR hC类型和wR hR类型
和前面两个类型都是一样操作的。
iPhoneSE横竖屏适配效果:
5、在不同类型添加控件
跟上面的操作大致相同,不同的是需要先切换到对应的类型下再添加控件。
例:在wC hR下添加一个UILabel,在wC hC下添加一个UIButton
效果图:
转载链接:https://www.jianshu.com/p/0b91341fead4
参考文献:
autolayout Compact,Regular,Any 解析
-
iOS如何获取设备型号的最新方法总结
2021-01-05 01:56:19在开发中,我们经常需要获取设备的型号(如 iPhone X , iPhone 8 Plus 等)以进行数据统计,或者做不同的适配。但苹果并没有提供相应的系统 API 让我们直接取得当前设备的型号。 其中, UIDevice 有一个属性 model ... -
iPhoneX适配之UI设计、交互设计
2017-09-17 17:25:35苹果近日发布了全新的iPhone X全面屏手机,这也是首款采用OLED屏幕的iPhone手机,它的正面设计被更多人吐槽,iPhone X 的刘海可能是让人又爱又恨的设计。... 后续,我会发布iOS工程师如何从代码层面上做适配。前言
苹果近日发布了全新的iPhone X全面屏手机,这也是首款采用OLED屏幕的iPhone手机,它的正面设计被更多人吐槽,之前被戏称为“刘海”的凹槽现在有了更多其他名称,“眉毛”、“头帘”等等。对于用户而言,iPhone X 的刘海可能是让人又爱又恨的设计。
爱的是,这一刘海像司马昭之心一样传达着「我在使用 iPhone X」这一个事实,正如 iPhone 7 的亮黑色一般。当然,包括 Face ID 以及 Animoji 等在内的新颖功能也会让人爱不释手。恨的原因,也很明显,这个刘海让屏幕不再方正圆润,就像一块膏药般永远的贴在你的屏幕上。看视频、看照片亦或其他,当你使用大部分应用时,它可能都会很显眼。
这几天被iPhone X一顿刷屏,标题写着“iPhone X 适配、指南、设计稿” 内容却是发布会回顾和手机介绍。索性自己去官网找素材写一篇只针对iPhone X适配的贴子,与设计图无关的内容通通不提,开始。
一、设计尺寸
发布的iPhone 8属于常规升级,屏幕与以往的iPhone6、6S、7系列相同。在发布的新机中,只有iPhone X的分辨率发生了变化,但变化仅限于物理像素层面。在真正决定屏幕内容的逻辑像素层面,新版的iPhone X与过去我们熟知的iPhone 4.7''、iPhone 5.5'' 放大模式宽度相同。通俗的说,iPhone X可看做是iPhone 4.7'' 的加长版
然而,事情并不是设计图加长这么简单。
二、交互设计
过去,我们拿到的手机是方方正正的矩形,所以整个屏幕都可以看做是安全区域Safe Area,而如今由于iPhone X屏幕上的“刘海”以及屏幕四周采用圆角的设计,对于开发者和设计师来说,这个刘海带给他们的是更多的麻烦。Apple 更新了 Human Interface Guidelines来为开发者提供适配 iPhone X 指南,从中可以看出,Apple 希望开发者将这个刘海毫无遮掩地呈现在 iPhone X 的「脑袋上」。
指南一:当为 iPhone X 适配应用时,请确保布局填充整个屏幕,同时不被设备的圆角、传感器和下方的 Home 条所遮挡。
在使用图片时,请注意长宽比差异。iPhone X具有不同于其它iPhone的长宽比,因此,全屏其它iPhone图片在iPhone X上全屏显示时会出现裁剪。同样,全屏iPhone X图片在其它iPhone也会出现裁剪,所以请注意两种设备适配。
指南二:不要尝试去隐藏设备的圆角、刘海或 Home 条,比如故意在屏幕顶部和底部使用黑色素材。
参考iOS 原生应用可看出 Apple 的意思:刘海上下不要放任何内容。
大部分使用系统提供的标准UI元素(如导航栏)的APP会自动适应iPhone X!Navigation bar、tab bar和tool bar会扩展到屏幕顶部和底部弧形区域。如果app使用自定义控件或非标准布局,要在iPhone X上运行良好需要一点修改。
苹果给出的安全区域如下
页面内容不能超出安全区域(Safe Area)
避免将触发交互行为的按钮放在屏幕的底部,人们会在屏幕底端使用手势进入主屏或切换应用。(底部横条是Home键)
iPhone X 状态栏高度更高,在电话和定位等后台任务时,高度不会变化(就是打电话和导航时,原先顶部增加的彩色带,现在变成时间信息底部的彩色气泡,见下图)
值得注意的是,iPhone X 底部操作栏目进行了细微的放大。除了常见的底部导航栏外,Safari底部操作栏也有放大讲完竖屏,再说横屏。和竖屏一样,横屏的内容也要放置在Safe Area中避免将触发交互行为的按钮放在屏幕的角落中。人们会在屏幕底端使用手势进入主屏或切换应用。这些系统的全局操作优先于App的操作。如果把功能放在角落里,用户操作起来也很费劲,尽量在用户手指可及区域内设计功能
底部虚拟Home指示条作为去除实体Home按键后的衍生物,底部将出现一个虚拟的Home指示条,用以实现常用的交互功能,锁屏状态下向上滑动解锁,应用内向上滑动回到主屏,向上滑动并停止片刻进入多任务切换窗口,虚拟Home指示条大多数情况下将会存在于屏幕的下方,而这个虚拟Home指示条只有黑、白两种颜色。
在底部有导航栏的app中,将会形成屏幕内的双下巴,部分应用如果具备从底部上滑的操作,为了和底部上滑回到主屏相区分,苹果提供了一个边缘保护的方案,第一次上滑是唤醒Home指示条,第二次才会激活原功能。而对于最受关注的全屏状态,虚拟Home指示条则会自动隐藏,不过尴尬的是,如果这时候是横屏状态,虚拟Home指示条也会跟随转动,而安卓虚拟按键则会始终存在于屏幕下方。全屏状态下点击屏幕后,虚拟Home指示条才会显示。最后说下最核心的问题,Safe Area 范围有多大?比对了官网上所有与iPhone X相关的界面,可以确定,Safe Area区间如下:对于习惯用750x1334作图的设计师而言,iPhone X的到来并不会带来太大影响,iPhone X与iPhone 4.7’’之间的差异甚至不及当年iPhone 4和iPhone 5之间的差异iPhone 4.7 与iPhone X 的Safe Area高度仅相差67 Point(134 px,@2x)对于大多数采用瀑布流的页面来说,仅仅是屏幕高度上的变化,可以无视。但对于如:新手引导页、音乐播放器等需要单屏显示的界面就需要重新布局。由于 iPhone X的屏幕比例发生变化,对于长期靠“等比缩放”完成适配的H5活动页而言也有不小的影响,需要对页面结构进行适当微调。如果应用程序需要隐藏状态栏,请重新考虑iPhone X上的布局。iPhone X的显示高度相对于iPhone 4.7''提供了更多的内容高度,状态栏和底部可以带来更多的空间。但需要就屏幕内容进行适当的调整。三、图标设计
底部导航栏图标,过去的做法是当前激活模块的图标为剪影风格,其他图标为线性风格。设计师需要做两套图标。分别是一套剪影,一套线性。而现在统一为剪影,而当前激活模块的图标使用平铺色代表激活。四、系统色系增强
iPhone X上的显示器支持P3色彩空间,可以产生比sRGB更丰富,更饱和的颜色。使照片和视频的颜色更加逼真,增强视觉体验!免责声明
本文以翻译《designing for iPhone X》为主,借鉴参考文献并结和自己的工作经验整理而来,仅供各位设计师工作参考,非商业用途,对文中有争议或侵权行为,请及时联系我调整。谢谢你们的阅读!
参考文档:阅读拓展: -
IOS 如何让你的应用快速兼容iPhone5
2013-05-23 16:20:00首先需要一个高级一点的Xcode版本,现在一般都要4.5以上了吧,然后将你的应用在模拟器中运行,选择 硬件-->...那么如何做适配呢? 1.首先需要添加一张启动图片,图片名字命名为Default-568h@2x.png... -
怎么适配高分屏_图解iPhoneX移动端UI适配设计
2021-01-06 03:54:35今天你抢到 iPhone X 了嘛?一:发生了什么新变化不久前,苹果发布的 iPhone X 等新产品以及正式推出的 ...二:如何做手机端适配1、选择合适的屏幕分辨率目前关于iPhone X 的设计资料有限,我们看官方的文档《Human ... -
iOS中如何使用iconfont图标实例详解
2021-01-05 18:45:02在开发项目时,不可避免的会用到各种图标,为了适配不同的设备,通常需要@2x和@3x两套图,例如说我们tabBar上使用的图标。有些app有换肤的需要,还需要多套不同的图来进行匹配不同的主题。如果使用切图,这对于设计... -
【IOS】让你的应用快速适配iPhone5
2013-02-02 13:29:39首先需要一个高级一点的Xcode版本,现在一般都要4.5以上了吧,然后将你的应用在模拟器中运行...那么如何做适配呢? 1.首先需要添加一张启动图片,图片名字命名为Default-568h@2x.png,设置好以后,启动看,就会发现 -
快速自动化适配iPhone X
2019-04-09 15:32:31关于iPhone X的适配,主要需要做的工作点就是针对上下非安全区域的适配。 在iOS开发中,针对于布局存在 xib 与 代码编辑 两种方式。而这两种方式又都支持 绝对布局 与 AutoLayout 两种。 接下来本文将从xib、代码... -
iOS 教你如何使用iconfont图标
2018-09-08 17:12:021.什么是iconfont iconFont拆开来看,就是 Icon + Font,这样估计大家应该都能理解是什么,那两者结合是什么呢?...在开发项目时,不可避免的会用到各种图标,为了适配不同的设备,通常需要@2x和... -
做app兼容性测试时如何挑选机型
2017-05-02 21:06:32在做app测试时,需要做适配测试,同样的页面在不同的手机上可能效果不同。如何挑选机型呢?主要从以下几个方面。 分辨率:iOS手机的分辨率有1334 x 750,1920 x 1080,1136 x 640,960 x 640等;android手机的分辨率... -
移动端高清屏适配方案
2017-02-09 12:36:00在其它页面,固定视口,不缩放,使用rem做布局适配,js添加屏幕标识以便调整字体大小(即布局使用rem,字体使用百分比),使用@2x图片,只做ios8+的1px处理 面临的问题: 在不同大小和高清的屏幕下: 如何... -
如何调整cell的大小
2015-08-10 11:36:00一般情况下,我们使用tableview的时候从来没有设置过cell的大小(w,h)、位置(x,y)等,而是系统直接给我们自动生成,但是有的时候我们可能会改动cell的大小及位置,比如:在适配ios6跟ios8的时候,需要把外观做的... -
Use Python3 + Tensorflow 1.x e.g. Tensorflow 1.4 or 1.5 下游任务 Fine-tuning on Downstream Task 使用TensorFlow: 以使用albert_base做LCQMC任务为例。LCQMC任务是在口语化描述的数据集上做文本的相似性预测...
-
重要提示2:3.5.2版本适配了iOS14、iPhone12,修复2个严重问题,强烈建议尽快更新 关于iOS14模拟器的问题 PHAuthorizationStatusLimited授权模式下,iOS14模拟器有bug,未授权照片无法显示,真机正常,暂可忽略:...
-
Android发展至今,功能越来越多,越来越强大,不过碎片化的问题也是众所周知的越来越严重,如果是做大众应用,我相信屏幕适配肯定是我们不可回避的一个问题,当然了,网上的适配方案有很多,比如: Google的百度比...
-
x86 debug/release, x64 debug/release Android平台 armeabi-v7a, arm64-v8a, x86, x86_64 iOS平台 armv7, arm64, i386, x86_64 Windows端 RTMP直播推流SDK RTMP推送SDK(支持同时推多路url,支持RTMP扩展H...
-
Android屏幕适配全攻略(最权威的官方适配指导).epub Android开发高手进阶.epub Android性能优化篇 [ 谷歌官方 ].epub Android最佳实践.epub android源码解析.epub Android特效专辑.epub Android自定义view.epub ...
-
Android屏幕适配全攻略(最权威的官方适配指导).epub Android开发高手进阶.epub Android性能优化篇 [ 谷歌官方 ].epub Android最佳实践.epub android源码解析.epub Android特效专辑.epub Android自定义view.epub ...
-
班会第 44 期
2020-12-08 21:06:39目前国内大家用的比较多的是阿里无线的那个 使用Flexible实现手淘H5页面的终端适配">Flexible, 在大漠的博客中也提到了,这个 Flexible 主要的事情是这些: <ul><li>动态改写 <code><meta></code>... -
工程硕士学位论文 基于Android+HTML5的移动Web项目高效开发探究
2017-02-28 21:22:19IOS 由苹果公司开发的移动操作系统 Webkit 一个开源的浏览器引擎,在手机上的应用十分广泛 Webview WebView(网络视图)能加载显示网页,可以将其视为一个浏览器。它使用了WebKit渲染引擎加载显示网页 Activity ...