Cordova 无法从 InAppBrowser 调用自定义 URL 方案到同一应用程序

Posted

技术标签:

【中文标题】Cordova 无法从 InAppBrowser 调用自定义 URL 方案到同一应用程序【英文标题】:Cordova Unable to Invoke Custom URL Scheme to Same Application from InAppBrowser 【发布时间】:2018-02-02 18:45:04 【问题描述】:

我有一个 ionic 3 应用程序,它有一个在 inappbrowser 中打开的 webview (cordova-inapp-browser),并且这个 webview 的网页有一个带有自定义 URL 方案的链接(例如:myapp1://),它应该调用应用程序主页再次返回(因此它退出应用程序浏览器)。它适用于 android,但不适用于 ios

使用的 inappbrowser cordova 插件是: https://github.com/ljcljc/cordova-plugin-inappbrowser https://github.com/Onegini/cordova-plugin-inappbrowser

这是 Info.plist 文件:

知道控制台似乎没有显示错误,您是否认为我缺少一些配置。

【问题讨论】:

您能否分享您为打开 URL 而进行的具体调用? @johnborges, this.inappbrowser.create(url, '_blank', options) options= location:'no', clearcache:'yes', clearsessioncache:'yes', toolbar:'no ', zoom:'no' url 是包含具有自定义 url 方案的链接的页面。 你能解决这个问题吗?我无法在 iOS 上启用 URL Scheme!请帮忙 【参考方案1】:

要打开外部应用程序,您必须使用'_system' 而不是'_blank'

再次阅读您的问题,您想调用同一个应用程序,对吧?

问题是,如果您在同一个应用程序中,则 url 方案不会像您想象的那样工作,该应用程序已经打开,因此使用 url 方案不会再次打开它,因为它已经打开了。

如果你想关闭 InAppBrowser,你可以做 2 件事:

    在 url 方案 url 上监听 loadstart 使用 handleOpenURL(url) 函数关闭 InAppBrowser,因为这是在调用 url 方案时调用的函数。

【讨论】:

请问如何使用handleOpenURL(url)????没有像这样的事件……你能写一个小例子吗???

以上是关于Cordova 无法从 InAppBrowser 调用自定义 URL 方案到同一应用程序的主要内容,如果未能解决你的问题,请参考以下文章

Cordova/PhoneGap 打开下载的文件 (InAppBrowser)

位置栏未出现在 InAppBrowser for iOS、Cordova 中

Cordova inAppBrowser 如何隐藏 URL 并仅显示完成按钮

Cordova/Phonegap 通过 JavaScript inappbrowser 打印

cordova插件:inappbrowser

cordova插件新的窗口实例打开连接: cordova-plugin-inappbrowser