gpt4 book ai didi

ios - UIWebView iOS 8 Action 扩展在 iOS 8 移动 safari 中崩溃

转载 作者:可可西里 更新时间:2023-11-01 02:59:42 27 4
gpt4 key购买 nike

iOS 8 Action 扩展应用的 View 具有 UIWebView。当我在 Safari 中打开此操作扩展,然后扩展应用程序显示移动 Safari 的 URL 的 UIWebView。

但扩展应用程序有时会在加载网页或滚动某些网页(如 nytimes.com)时崩溃。

我知道扩展应用程序的可用内存取决于移动版 Safari。

但我发现“Awesome Screenshot for Safari”不会崩溃。( https://itunes.apple.com/us/app/awesome-screenshot-for-safari/id918780145 )

我想知道如何防止 Action 扩展应用程序崩溃。

@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];
}
}

最佳答案

我遇到了同样的问题,在后台使用 UIWebView 为我的应用抓取一些内容。当我连接到调试器时它工作正常。但是在没有调试器的情况下运行相同的构建总是会崩溃。

我通过迁移到 WKWebView 解决了这个问题,这实际上非常简单。我猜想 UIWebView 太旧且效率低下,无法在 Safari 内的扩展中运行。使用 WKWebView 效果很好。

然后,当我使用 Web View 并保存我的数据时,我发现了崩溃。我将它保存到 NSUserDefaults(使用我的组容器)以传递给主应用程序。这也总是崩溃,所以我删除了该代码。我最终改用了 CoreData,效果也很好。

现在我有了一个不会崩溃的 Safari 扩展! :)

关于ios - UIWebView iOS 8 Action 扩展在 iOS 8 移动 safari 中崩溃,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26248714/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com