gpt4 book ai didi

ios - 在 iOS WKWebView 中单击带有 URL 的 Whatsapp 方案时出现不支持的 URL 错误

转载 作者:塔克拉玛干 更新时间:2023-11-02 21:04:32 25 4
gpt4 key购买 nike

我正在使用 iOS 9.3.3 并在 WKWebView 中显示的网站中单击 Whatsapp 链接。

每当我尝试使用包含链接的 http://或 https://部分作为消息的一部分的 URL 向 whatsapp url 方案发送消息时,我都会收到“不支持的 URL”错误。

 [self.webView1 loadRequest:[NSURLRequest requestWithURL:[NSURL URLWithString:@"whatsapp://send?text=this%20is%20a%20test%20http://https://www.usa-brands.net/collections/new-arrivals/products/dacey-cap-sleeve-drop-waist-wool-sweater-dress"]]];

当我删除 http://或 https://时,它可以工作,但现在我没有得到 Rich Preview ( https://www.macstories.net/ios/whatsapp-adds-rich-previews-for-web-links/ )。

我试过对 url 进行编码,但这也不起作用。当我删除所有其他潜在问题时,它归结为 url 链接中的协议(protocol)。

完整的错误信息是:

Error Domain=NSURLErrorDomain Code=-1002 "unsupported URL"UserInfo={_WKRecoveryAttempterErrorKey=, NSErrorFailingURLStringKey=whatsapp://send?text=Check%20this%20out%20'Dacey'%20Cap%20Sleeve%20Drop%20Waist% 20Wool%20Sweater%20Dress,%20348.00%20USD:%20https://www.usa-brands.net/products/dacey-cap-sleeve-drop-waist-wool-sweater-dress, NSErrorFailingURLKey=whatsapp://send? text=Check%20this%20out%20'Dacey'%20Cap%20Sleeve%20Drop%20Waist%20Wool%20Sweater%20Dress,%20348.00%20USD:%20https://www.usa-brands.net/products/dacey-cap -sleeve-drop-waist-wool-sweater-dress, NSUnderlyingError=0x137dd1380 {Error Domain=kCFErrorDomainCFNetwork Code=-1002 "unsupported URL"UserInfo={NSErrorFailingURLStringKey=whatsapp://send?text=Check%20this%20out%20' Dacey'%20Cap%20Sleeve%20Drop%20Waist%20Wool%20Sweater%20Dress,%20348.00%20USD:%20https://www.usa-brands.net/products/dacey-cap-sleeve-drop-waist-wool-sweater -dress, NSLocalizedDescription=不支持的 URL, NSErrorFailingURLKey=whatsapp://send?text=Check%20t his%20out%20'Dacey'%20Cap%20Sleeve%20Drop%20Waist%20Wool%20Sweater%20Dress,%20348.00%20USD:%20https://www.usa-brands.net/products/dacey-cap-sleeve-drop -waist-wool-sweater-dress}}, NSLocalizedDescription=不支持的 URL}

有谁知道为什么这不起作用。它适用于 Android。

最佳答案

您应该实现 WKWebView 的 WKNavigationDelegate 函数:

- (void)webView:(WKWebView *)webView decidePolicyForNavigationAction:(WKNavigationAction *)navigationAction decisionHandler:(void (^)(WKNavigationActionPolicy))decisionHandler {
if (![url.scheme isEqualToString:@"http"] && ![url.scheme isEqualToString:@"https"]) {
if ([[UIApplication sharedApplication] canOpenURL:url]) {
[[UIApplication sharedApplication] openURL:url];
} else {
NSLog(@"Sorry, you haven't install the %@", url.scheme);
}
decisionHandler(NO);
}
decisionHandler(YES);
}

并且不要忘记在 Info.plist 中添加 whatsapp 的白名单:

<dict>
<key>LSApplicationQueriesSchemes</key>
<array>
<string>whatsapp</string>
</array>
......
</dict>

关于ios - 在 iOS WKWebView 中单击带有 URL 的 Whatsapp 方案时出现不支持的 URL 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38780027/

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