Phonegap 外部链接仅在 testflight 中停止工作

Posted

技术标签:

【中文标题】Phonegap 外部链接仅在 testflight 中停止工作【英文标题】:Phonegap external links have stopped working in testflight only 【发布时间】:2019-05-21 08:01:16 【问题描述】:

有一个应用,一年多没问题。突然外部链接停止工作。

仅在试飞+直播时中断

如果我通过 Phonegap Dev 应用程序、本地浏览器运行它,甚至当你直接从 XCode 运行它时,它都能完美运行。

我尝试过的示例链接

<a href="https://somewebsite.com/terms-conditions" onclick="window.open(this.href,'_blank','location=yes'); return false;">terms and conditions</a>

<a href="https://somewebsite.com/terms-conditions" onclick="window.open(this.href,'_system','location=yes'); return false;">terms and conditions</a>

<a href="https://somewebsite.com/terms-conditions" target="_blank">terms and conditions</a>

<a href="https://somewebsite.com/terms-conditions" target="_system">terms and conditions</a>

在 config.xml 中

    <allow-intent href="http://*/*" />
    <allow-intent href="https://*/*" />
    <allow-intent href="tel:*" />
    <allow-intent href="sms:*" />
    <allow-intent href="mailto:*" />
    <allow-intent href="geo:*" />
    <allow-navigation href="https://somewebsite.com/*" />
    <allow-intent href="itms:*" />
    <allow-intent href="itms-apps:*" />

有时链接会打开,但需要按 10 次以上才能打开。 使用 Phonegap 8.2.2,仅限 ios + 桌面,最新构建版本和 Framework 7。

我什至修改了 CDVUIWebViewDelegate 方法 shouldStartLoadWithRequest

- (BOOL)webView:(UIWebView*)webView shouldStartLoadWithRequest:(NSURLRequest*)request navigationType:(UIWebViewNavigationType)navigationType


    NSString *url = [NSString stringWithFormat:@"%@",request.URL];

    if([url containsString:@"https:"] || [url containsString:@"http:"])
        if([url containsString:@"somewebsite."] && [url containsString:@".com/terms-conditions"])
        
            [[UIApplication sharedApplication] openURL:[request URL]];
            return NO;
        
    

【问题讨论】:

【参考方案1】:

在移动到 testflight 并对其进行测试后更新您的插件 cordova-plugin-inappbrowser

【讨论】:

我没有使用 inappbrowser,它自 2018 年以来就没有更新过。这个问题大约一个月前才开始。【参考方案2】:

你必须使用插件cordova-plugin-inappbrowser

这是由于一些更新的 iOS 政策,使用它来解决您的问题 :)

【讨论】:

它没有解决我的问题,最后一次更新是在 2018 年。问题是一个月前才开始的。 你试过了吗? 是的,我做到了。当我尝试它时它最初也不起作用 - 这就是我添加自己的代码来处理导航事件的原因 贴出你使用的inappbrowser代码和错误信息

以上是关于Phonegap 外部链接仅在 testflight 中停止工作的主要内容,如果未能解决你的问题,请参考以下文章

为啥外部链接在构建后在 phonegap 应用程序上不起作用

Phonegap / Cordova ios外部链接iframe无法在safari中打开

Phonegap 2.9.0 不在默认浏览器中打开外部链接

PhoneGap/Cordova 打开外部链接到 Safari 而不是全屏 inApp

在启动时加载外部链接的 Phonegap 应用程序 - Android

使用 PhoneGap 在 JQuery Mobile 的外部浏览器中无法打开链接