iOS_支付寶網頁支付頁面無法跳轉(未安裝支付寶的情況下)
阿新 • • 發佈:2019-01-27
當使用storyboard 的時候且咩有安裝支付寶,呼叫支付寶介面時可能無法跳轉到網頁,其原因是應用程式有多個UIWindow 視窗,解決方案有三種:
第1種:刪除AppDelegate中的window(此方法不適用純程式碼編寫的情況)
第2種:刪除storyBoard,還得刪除info.plist 的刪除 Main storyboard file base name(此方法用於不使用storyBoard的情況)
第3種(博主推薦):呼叫之前:
NSArray *array = [[UIApplication sharedApplication] windows];
UIWindow* win=[array objectAtIndex:0];
[win setHidden:NO];
在支付寶回撥方法中: [win setHidden:YES];
if (![[UIApplication sharedApplication] canOpenURL: [NSURL URLWithString:@"alipay:"]]) { //支付寶網頁支付設定,顯示UIWindow視窗 NSArray *array = [[UIApplication sharedApplication] windows]; UIWindow* win=[array objectAtIndex:0]; [win setHidden:NO]; } [[AlipaySDK defaultService] payOrder:orderString fromScheme:appScheme callback:^(NSDictionary *resultDic) { if (![[UIApplication sharedApplication] canOpenURL: [NSURL URLWithString:@"alipay:"]]) { //支付寶網頁支付設定,隱藏UIWindow視窗 NSArray *array = [[UIApplication sharedApplication] windows]; UIWindow* win=[array objectAtIndex:0]; [win setHidden:YES]; } }]