gpt4 book ai didi

ios - WKWebView上传文件的名称包含中文字符,结果乱码

转载 作者:行者123 更新时间:2023-12-01 16:14:48 70 4
gpt4 key购买 nike

我正在开发Mac应用程序,只是封装在WKWebView中的简单Web应用程序。

这是我尝试上传名称包含特殊字符的文件时的代码:

-(void)webView:(WKWebView *)webView runOpenPanelWithParameters:(WKOpenPanelParameters *)parameters initiatedByFrame:(WKFrameInfo *)frame completionHandler:(void (^)(NSArray<NSURL *> * _Nullable))completionHandler
{
DEBUG_FUNC(@"");

NSOpenPanel* openDlg = [NSOpenPanel openPanel];
[openDlg setCanChooseFiles:YES];
[openDlg setCanChooseDirectories:NO];
[openDlg setPrompt:NSLocalizedString(@"Choose", nil)];
openDlg.allowsMultipleSelection = YES;

if ( [openDlg runModal] == NSOKButton )
{
if (completionHandler)
{
completionHandler([openDlg URLs]);
}
}
}

当我使用WebView时,这种方式可以工作,因此应该不是网络问题。

但是由于该项目使用WKWebView,
例如:通过WKWebView上传后,文件“证书.p12”将更改为“è¯ä¹¦.p12”。
有人知道如何解决吗?
谢谢!

最佳答案

您的代码中存在一些小缺陷(例如您在取消后不调用处理程序),这也已经过时了...

- (void)webView:(WKWebView *)webView runOpenPanelWithParameters:(WKOpenPanelParameters *)parameters initiatedByFrame:(WKFrameInfo *)frame completionHandler:(nonnull void (^)(NSArray<NSURL *> * _Nullable))completionHandler{

NSOpenPanel * openDialog = [NSOpenPanel openPanel];
[openDialog setCanChooseFiles:YES];
[openDialog setCanChooseDirectories:NO];
openDialog.allowsMultipleSelection = NO;

[openDialog beginSheetModalForWindow:self.view.window completionHandler:^(NSModalResponse result) {
if (result == NSModalResponseOK) {
completionHandler([openDialog URLs]);
} else {
completionHandler(nil);
}
}];

}

关于ios - WKWebView上传文件的名称包含中文字符,结果乱码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44303980/

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