首页 > 解决方案 > Android 上的 Ionic InAppBrowser 无法导航到自定义 URL 方案

问题描述

我有一个设置,我在插件 InAppBrowser 中打开一个带有目标“_blank”的 url。插件 Deeplinks 也已安装和配置。

const browser: InAppBrowserObject = this.iab.create(url, '_blank', <InAppBrowserOptions>{
    location: "no",
    toolbar: "no",
    footer: "no"
});

browser.on('loadstart').subscribe((event: InAppBrowserEvent) => {
    console.log(event);

    if (event.url.indexOf('wflwr://payment/success') > -1) {
        browser.close();
    }

    if (event.url.indexOf('wflwr://payment/cancel') > -1) {
        browser.close();
    }

    if (event.url.indexOf('wflwr://payment/error') > -1) {
        browser.close();
    }
});

我缩短了它以仅显示重要部分。打开的 url 是https://www.voan.ch/wfl/(在真正实现之前只是一个 Mock)

预期的行为是,单击 url 上的每个链接时,应用程序内的浏览器实例应该关闭。这在 iOS 上按预期工作,但在 Android 上却不行。事件只是没有被触发。如果我将其中一个 url 更改为 eg <a href="https://www.google.com">CANCEL</a>,则事件被触发。

标签: androidcordovaionic3inappbrowser

解决方案


对此的支持是在最新的pr中添加的

要使用它,您需要两件事:

例如允许 whatsapp 自定义方案和 twitter

  • 使用您要支持的自定义方案添加新的 config.xml 首选项: <preference name="AllowedSchemes" value="whatsapp,twitter" />`
  • 添加事件监听器customscheme: inAppBrowserRef.addEventListener('customscheme', function (event) { //do whatever you want here like: window.open(event.url, "_system"); });

推荐阅读