Cordova 应用程序外部链接在 iOS 上不起作用
Posted
技术标签:
【中文标题】Cordova 应用程序外部链接在 iOS 上不起作用【英文标题】:Cordova app external links not working on iOS 【发布时间】:2017-12-20 23:04:45 【问题描述】:我有一个 Cordova 应用程序(使用 PGB 构建),其中外部链接在 ios 上停止工作。这些链接在 android 上和作为 WebApp 上都可以正常工作,而在 iOS 上则不行。我尝试了 UIWebView 和 WkWebView。这曾经在所有平台上都可以正常工作。我不确定它什么时候坏了(Cordova 6 或 iOS 11)。我使用白名单插件:
<access origin="*"/>
<allow-navigation href="*" />
<allow-intent href="*" />
CORS 标头是:
<meta http-equiv="Content-Security-Policy"
content="default-src 'self' gap://ready file://* *;
style-src * 'self' 'unsafe-inline' 'unsafe-eval';
script-src * 'self' 'unsafe-inline' 'unsafe-eval';"
>
链接都是外部的。我不需要或不希望它们出现在应用程序 WebView 中。我更喜欢一个单独的 Safari 实例。我还需要使用 inappbrowser 插件吗?
【问题讨论】:
【参考方案1】:allow-navigation
优先于 allow-intent
,您必须删除 allow-navigation
条目或将其更改为仅允许导航到某些 URL,而不是全部。
【讨论】:
正确,从配置文件中删除allow-navigation
后,iOS 确实会在浏览器中打开链接。但是,如果我想使用 <allow-navigation href="https://*youtube.com/*" />
嵌入 ToyTube 视频,您知道如何使它工作吗?无论我做什么,我只能制作一个(链接或嵌入的视频)来工作。但我希望两者同时工作。【参考方案2】:
这对我有用!定义allow-navigation
以允许嵌入将破坏外部链接,因此要解决此问题,我必须安装inAppBrowser 插件https://github.com/apache/cordova-plugin-inappbrowser 并使用js 打开带有cordova.InAppBrowser.open(href, '_system');
的链接
【讨论】:
以上是关于Cordova 应用程序外部链接在 iOS 上不起作用的主要内容,如果未能解决你的问题,请参考以下文章
Cordova katzer 插件后台模式在 iOS-9 上不起作用
带有 Phonegap Build 的 Cordova 插件白名单在 iOS 上不起作用
带有 Cordova 垂直滚动的 Framework7 在 iOS 上不起作用
在 PhoneGap/Cordova 中安排本地通知在 iOS 模拟器上不起作用