1. 程式人生 > >iOS_支付寶網頁支付頁面無法跳轉(未安裝支付寶的情況下)

iOS_支付寶網頁支付頁面無法跳轉(未安裝支付寶的情況下)

當使用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];
                
            }
}]