在iOS 9.3中,Google+经常出现卡顿问题。

7

我在我的应用程序中使用UIActivityViewController中的共享选项;在iOS 9.2上运行良好,但Google+共享选项在iOS 9.3上无法工作。

为了确认这一点,我下载了另一个具有使用UIActivityViewController的共享选项的应用程序,问题是整个应用程序的用户界面都挂起了。

我该如何解决这个问题?

编辑1: 代码:

        NSURL * URL =  [[NSURL alloc]initWithString:@"http://domainName/message.php?"];

        NSMutableURLRequest* request = [NSMutableURLRequest requestWithURL:URL cachePolicy:NSURLRequestUseProtocolCachePolicy timeoutInterval:60.0];
        [request setHTTPMethod:@"GET"];

        NSString *tempEmailId  = (NSString *)[[NSUserDefaults standardUserDefaults] objectForKey:CURRENT_USER_EMAIL_ID_UD_KEY];
        NSString *tempPassword = (NSString *)[[NSUserDefaults standardUserDefaults] objectForKey:CURRENT_USER_PASSWORD_UD_KEY];

        NSString *basicAuthCredentials = [NSString stringWithFormat:@"%@:%@", tempEmailId, tempPassword];
       [request setValue:[NSString stringWithFormat:@"Basic %@", AFBase64EncodedStringFromString(basicAuthCredentials)] forHTTPHeaderField: @"Authorization"];
       //NSLog(@"request %@\n",request);
       [[[NSURLSession sharedSession] dataTaskWithRequest:request completionHandler:^(NSData *data, NSURLResponse *response, NSError *error) {
        if (data != nil) {
            NSString *responseString = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding];
            NSArray * activityItems = @[responseString];
            dispatch_async(dispatch_get_main_queue(), ^{
                activityViewController = [[UIActivityViewController alloc] initWithActivityItems:activityItems applicationActivities:activities];
                [activityViewController setValue:@"Today's Recommendations" forKey:@"subject"];
                activityViewController.excludedActivityTypes = @[UIActivityTypePostToFacebook];

[activityViewController setCompletionWithItemsHandler:
                 ^(NSString *activityType, BOOL completed, NSArray *returnedItems, NSError *activityError) {
                     dispatch_async(dispatch_get_main_queue(), ^{
                     NSLog(@"activityType: %@, returnedItems: %@, activityError: %@", activityType, returnedItems, activityError.userInfo);

                     if (completed)
                     {
                         NSLog(@"The Activity: %@ was completed", activityType);
                     }
                    else
                     {
                         NSLog(@"The Activity: %@ was NOT completed", activityType);
                     }
                     });

                 }];

                if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPhone) {
                    [self presentViewController:activityViewController animated:YES completion:nil];
                }
//if iPad
                else {
                    activityViewController.modalPresentationStyle = UIModalPresentationPopover;

                    // activityViewController.popoverPresentationController.sourceView = sender;

                    activityViewController.popoverPresentationController.sourceView = self.view;

                    if ([sender isKindOfClass:[UIButton class]]) {
                        UIButton *btn = (UIButton *)sender;
                        activityViewController.popoverPresentationController.sourceRect = btn.frame;
                    }

                    [self presentViewController:activityViewController animated:YES completion:nil];
                }
            });
        }
    }] resume];

注意:邮件、Twitter和Evernote可以正常使用,只有Google+出现了卡顿。

编辑2:我不确定,但我认为它与打开URL无关。如果有关,请告诉我如何操作?


4
相关?iOS 9.3调用openURL后冻结 @AashishBhatnagar,你正在调用openURL吗? - JAL
@Lion,请贴出你所涉及的代码片段,导致iOS无响应的问题? - Farside
@Lion,你在info.plist文件中添加了LSApplicationQueriesSchemes吗? - Rahul Patel
@RahulPatel 是的先生,<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> <plist version="1.0"> <array> <string>fbauth2</string> </array> </plist> - Lion
1个回答

3
iOS 9.3中出现了一些JavaScript问题。下面的文章明确指出,这不是代码问题,而是苹果Webview的问题。请参考以下引用和URL。
引用:
iOS 9.3在电子邮件中点击链接时会冻结
最常见的问题之一是...影响电子邮件中的链接。使用iOS 9.3时,有些人发现在Mail邮件应用程序中点击链接后,iPhone或iPad会无响应。
解决方法是在Safari应用程序中关闭JavaScript。方法:打开“设置”>“Safari”>“高级”,然后关闭旁边JavaScript的开关。
此解决方案并不理想,幸好Apple推出了新的更新iOS 9.3.1,根据发布说明,“修复了在Safari和其他应用程序中点击链接后导致应用程序无响应的问题”。
要下载和安装更新,请打开“设置”并选择“通用”,然后选择“软件更新”。现在您应该能够重新打开JavaScript,并能够点击电子邮件和其他消息中的链接,而无需担心iOS 9.3会冻结。
参考链接:iOS 9.3问题

先生,我的iPad使用的是iOS 9.3.1版本。 - Lion
是的,我明白了。同样的问题还没有解决。我在我的应用程序和Safari中也遇到了这个问题。在联系开发人员支持之后,他们告诉我这个问题很快就会得到解决。 - PREMKUMAR
嗯,好的。我也在等待中。 - PREMKUMAR
没有……仍然存在同样的问题。 - Lion

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接