From 6c713332b96753d047b206c35a2ce05e7223ddf5 Mon Sep 17 00:00:00 2001 From: jahorton Date: Mon, 30 Nov 2020 14:42:55 +0700 Subject: [PATCH] fix(ios): package-internal links should be considered internal --- .../KeymanEngine/Classes/PackageWebViewController.swift | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/ios/engine/KMEI/KeymanEngine/Classes/PackageWebViewController.swift b/ios/engine/KMEI/KeymanEngine/Classes/PackageWebViewController.swift index 4055f8d3d7..58697f97e4 100644 --- a/ios/engine/KMEI/KeymanEngine/Classes/PackageWebViewController.swift +++ b/ios/engine/KMEI/KeymanEngine/Classes/PackageWebViewController.swift @@ -90,7 +90,12 @@ class PackageWebViewController: UIViewController, WKNavigationDelegate { decidePolicyFor navigationAction: WKNavigationAction, decisionHandler: @escaping (WKNavigationActionPolicy) -> Void) { if let link = navigationAction.request.url { - if UniversalLinks.isExternalLink(link) { + if link.path.hasPrefix(self.package.sourceFolder.path) { + // Links from within the package will show up as 'external' in the condition below! + // So, we check against package-internal links first. + decisionHandler(.allow) + return + } else if UniversalLinks.isExternalLink(link) { decisionHandler(.cancel) // Kick this link out to an external Safari process.