iOS 8操作擴展應用程序的視圖具有UIWebView。當我在Safari中打開此操作擴展,然後擴展應用程序顯示移動Safari的URL的UIWebView。UIWebView iOS 8操作iOS 8移動Safari中的擴展崩潰
但是擴展應用程序有時在加載網頁或滾動它像nytimes.com一些網頁時崩潰。
我知道擴展應用程序的可用內存取決於移動Safari。
但我發現'Safari瀏覽器的真棒截圖'不會崩潰。 (https://itunes.apple.com/us/app/awesome-screenshot-for-safari/id918780145)
我想知道如何防止動作擴展應用程序崩潰。
@interface ActionViewController()
@property(strong,nonatomic) IBOutlet UIImageView *imageView;
@property (strong, nonatomic) IBOutlet UIWebView *webView;
@end
@implementation ActionViewController
- (void)viewDidLoad {
[super viewDidLoad];
NSExtensionItem *item = self.extensionContext.inputItems.firstObject;
NSItemProvider *itemProvider = item.attachments.firstObject;
if ([itemProvider hasItemConformingToTypeIdentifier:(NSString *)kUTTypeURL]) {
__weak typeof(self) weakSelf = self;
[itemProvider loadItemForTypeIdentifier:(NSString *)kUTTypeURL options:nil completionHandler:^(id<NSSecureCoding> item, NSError *error) {
if (error) {
[weakSelf.extensionContext cancelRequestWithError:error];
return;
}
if (![(NSObject *)item isKindOfClass:[NSURL class]]) {
NSError *unexpectedError = [NSError errorWithDomain:NSItemProviderErrorDomain
code:NSItemProviderUnexpectedValueClassError
userInfo:nil];
[weakSelf.extensionContext cancelRequestWithError:unexpectedError];
return;
}
NSURL *url = (NSURL *)item;
[weakSelf.webView loadRequest:[NSURLRequest requestWithURL:url]];
}];
} else {
NSError *unavailableError = [NSError errorWithDomain:NSItemProviderErrorDomain
code:NSItemProviderItemUnavailableError
userInfo:nil];
[self.extensionContext cancelRequestWithError:unavailableError];
}
}
你有任何錯誤日誌? – ytbryan 2014-10-08 03:24:55
在模擬器或調試模式下沒問題,但有時會在實模式下崩潰。我沒有任何代碼來擴展應用程序,只是在代碼上方。 – dobiho 2014-10-08 04:38:12
我有完全相同的問題,一直在等待年齡的評論,在這篇文章中,直到我得到50分:)。你有沒有得到任何解決方案?在許多情況下,我懷疑它是JavaScript的分配限制爲10MB(請參見[這裏](https://developer.apple.com/library/ios/documentation/UIKit/Reference/UIWebView_Class/index.html#// apple_ref/OCC/instm/UIWebView中/ stringByEvaluatingJavaScriptFromString :))。你知道如果網站崩潰了有一些額外的JS活動。 – Antenehs 2014-11-11 08:34:15