前言
最近有个需求,不能在iOS客户端内集成支付宝和微信的App支付SDK(为了防苹果审核检测SDK),因此使用H5支付,虽然微信和支付宝的H5支付文档都说不要在App内使用H5支付而是使用App支付,但办法总是有的。
这篇讲的是H5微信支付如何从App跳转微信以及如何从微信跳转回App,支付宝的见这篇:
实现的效果是:App→微信→支付(成功失败或取消)→App
1 | if ([array isKindOfClass:[NSArray class]] && array.count > 0) |
Device | Logic Point | Logic Pixel | Size | Scale |
---|---|---|---|---|
iPhone 2G | 480 × 320 | 480 × 320 | 3.5 | 1x |
iPhone 3 | 480 × 320 | 480 × 320 | 3.5 | 1x |
iPhone 3GS | 480 × 320 | 480 × 320 | 3.5 | 1x |
iPhone 4 | 480 × 320 | 960 × 640 | 3.5 | 2x |
iPhone 4S | 480 × 320 | 960 × 640 | 3.5 | 2x |
iPhone 5 | 568 × 320 | 1136 × 640 | 4.0 | 2x |
iPhone 5S | 568 × 320 | 1136 × 640 | 4.0 | 2x |
iPhone 5C | 568 × 320 | 1136 × 640 | 4.0 | 2x |
iPhone 6 | 667 × 375 | 1334 × 750 | 4.7 | 2x |
iPhone 6 Plus | 736 × 414 | 2208 × 1242 | 5.5 | 3x |
iPhone 6S | 667 × 375 | 1334 × 750 | 4.7 | 2x |
iPhone 6S Plus | 736 × 414 | 2208 × 1242 | 5.5 | 3x |
iPhone SE | 568 × 320 | 1136 × 640 | 4.0 | 2x |
iPhone 7 | 667 × 375 | 1334 × 750 | 4.7 | 2x |
iPhone 7 Plus | 736 × 414 | 2208 × 1242 | 5.5 | 3x |
iPhone 8 | 667 × 375 | 1334 × 750 | 4.7 | 2x |
iPhone 8 Plus | 736 × 414 | 2208 × 1242 | 5.5 | 3x |
iPhone X | 812 × 375 | 2436 × 1125 | 5.8 | 3x |
iPhone XS | 812 × 375 | 2436 × 1125 | 5.8 | 3x |
iPhone XR | 896 × 414 | 1792 × 828 | 6.1 | 2x |
iPhone XS Max | 896 × 414 | 2688 × 1242 | 6.5 | 3x |
一些iOS面试基础题总结
多线程方法的completionHandler
block可能运行在非主线程上。两种处理方法:
遇到了一个后台json误将null作为字符串值导致iOS客户端崩溃闪退的问题,解决方法如下:套一层判断,如果是各种情况的null则转换为@””。
1 | + (NSString *) nullToString:(id)string { |
1 | label.lineBreakMode = NSLineBreakByCharWrapping; //以字符为显示单位显示,后面部分省略不显示。 |
之前遇到的问题,给UITabbar item设置图片,然而素材的图片分辨率是87*87,填满了整个tabbar item的区域,很难看,又要考虑适配XS Max的三倍问题。 解决方法如下: 通过设置scale使生成的图片尺寸是逻辑分辨率pt单位,不用操心二倍三倍的问题。