自定义 Wix 网站上的链接按钮不会从 iOS 应用程序导航到各自的目的地



BackGround:

我用 wix.com 做了一个网站,就是这个[https://www.igparrot.com]。我在Xcode的iOS应用程序中嵌入了这个网站。当我从浏览器访问网站时,重定向到网站外部其他 URL 的任何链接或按钮都可以正常工作,但是当我从应用程序打开它们时,这些链接按钮无法导航到指定的 URL。基本上不采取任何行动。

法典:

这是我传递网站 URL 的代码:

if indexPath.row == 0 
{
return ("Support".localized(), "https://www.igparrot.com")
}
else if indexPath.row == 1 
{
return ("Rate the App".localized(), "https://apps.apple.com/app/id1522248373")
}

我假设您正在使用WKWebView来展示您的网页,该网页已显示并且此页面上的链接不起作用。您是否实施了WKNavigationDelegate(文档)。处理链接?也许您实现委托的方式出了问题。从WKWebView文档中:

当用户单击内容中的链接时,Web 视图的行为类似于 浏览器,并在该链接上显示内容。要禁止导航, 或者,要自定义 Web 视图的导航行为,请提供 Web 具有导航委托的视图,即符合WKNavigationDelegate协议。使用导航委托 修改 Web 视图的导航行为,或跟踪加载 新内容的进度。

具体来说,webView(_:decidePolicyFor:decisionHandler:)对您来说应该很有趣,因为这使您能够决定是否访问WKWebView中的页面。

例:

func webView(_ webView: WKWebView, decidePolicyFor navigationAction: WKNavigationAction, decisionHandler: @escaping (WKNavigationActionPolicy) -> Void) {
if let host = navigationAction.request.url?.host {
if host.contains("example.com") {
decisionHandler(.allow)
return
}
}
decisionHandler(.cancel)
}

另外,请查看此页面以获取更多信息。

也可能是您链接到的页面http://而不是https://。默认情况下,具有前者的站点将被阻止(出于安全原因)。如果要启用它们(不推荐),可以通过将其添加到Info.plist文件中来执行此操作:

<key>NSAppTransportSecurity</key>
<dict>
<key>NSAllowsArbitraryLoadsInWebContent</key>
<true/>
</dict>

另一个原因可能是您配置WKWebViewConfiguration的方式只允许链接到所谓的应用绑定域的页面。然后,limitsNavigationsToAppBoundDomains设置设置为true,它只允许您在Info.plist中列出的域(见下文)。如果页面链接不在其中一个域中,它将不起作用。如果设置为false,则无需将它们添加到应用绑定域。

<key>WKAppBoundDomains</key>
<array>
<string>example1.com</string>
<string>example2.org</string>
...
</array>

最新更新