前言

最近有个需求,不能在iOS客户端内集成支付宝和微信的App支付SDK(为了防苹果审核检测SDK),因此使用H5支付,虽然微信和支付宝的H5支付文档都说不要在App内使用H5支付而是使用App支付,但办法总是有的。

这篇讲的是H5微信支付如何从App跳转微信以及如何从微信跳转回App,支付宝的见这篇:

iOS集成支付宝H5支付实现跳转与回调的解决方案

实现的效果是:App→微信→支付(成功失败或取消)→App

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

遇到了一个后台json误将null作为字符串值导致iOS客户端崩溃闪退的问题,解决方法如下:套一层判断,如果是各种情况的null则转换为@””。

1
2
3
4
5
6
7
+ (NSString *) nullToString:(id)string {
if ([string isEqual:@"NULL"] || [string isKindOfClass:[NSNull class]] || [string isEqual:[NSNull null]] || [string isEqual:NULL] || [[string class] isSubclassOfClass:[NSNull class]] || string == nil || string == NULL || [string isKindOfClass:[NSNull class]] || [[string stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceAndNewlineCharacterSet]] length]==0 || [string isEqualToString:@"<null>"] || [string isEqualToString:@"(null)"]) {
return @"";
} else {
return (NSString *)string;
}
}

1
2
3
4
5
6
label.lineBreakMode = NSLineBreakByCharWrapping; //以字符为显示单位显示,后面部分省略不显示。
label.lineBreakMode = NSLineBreakByClipping; //剪切与文本宽度相同的内容长度,后半部分被删除。
label.lineBreakMode = NSLineBreakByTruncatingHead; //前面部分文字以……方式省略,显示尾部文字内容。
label.lineBreakMode = NSLineBreakByTruncatingMiddle; //中间的内容以……方式省略,显示头尾的文字内容。
label.lineBreakMode = NSLineBreakByTruncatingTail; //结尾部分的内容以……方式省略,显示头的文字内容。
label.lineBreakMode = NSLineBreakByWordWrapping; //以单词为显示单位显示,后面部分省略不显示。



©2019 派大星星星星

本站使用 Material X 作为主题 , 总访问量为 次 。