Cordova Custom-URL-scheme 插件不工作
Cordova Custom-URL-scheme plugin not working
我唯一能找到的插件就是这个https://github.com/EddyVerbruggen/Custom-URL-scheme
我尝试安装它并检查它的 iOS 实现,它在 plugins/cordova-plugin-customurlscheme/src/
里面是空的(没有找到 ios
文件夹,只有 android
和 window
).我查看了plugins/cordova-plugin-customurlscheme/www/ios/LaunchMyApp.js
,内容是:
"use strict";
/*
Q: Why an empty file?
A: iOS doesn't need plumbing to get the plugin to work, so..
- Including no file would mean the import in index.html would differ per platform.
- Also, using one version and adding a userAgent check for Android feels wrong.
- And if you're not using PhoneGap Build, you could paste your handleOpenUrl JS function here.
*/
没有意义,按我的理解,应该在AppDelegate
中实现func application(_application: UIApplication, open url: URL, options: [UIApplicationOpenURLOptionsKey : Any] = [:] ) -> Bool
,但它是空的。在这种情况下,如何在 JS
中覆盖 handleOpenURL
会起作用?
我真的找不到其他的,谁能推荐类似的可用插件?我的场景是,当 A 应用程序调用 B 应用程序时,我的 B 应用程序是一个 cordova 应用程序,我需要一个 listener/callback 来捕获 url 内容。
已更新:
添加在MAF
标签中,因为问题是由Oracle MAF框架引起的,没想到,认为问题来自Cordova。
它不应该在 iOS 中实现某些东西。自定义 URL 方案仅更新 iOS 中的 Info.plist
。所以,没关系。它注册自定义 URL 方案。
要处理 URL 它们,您需要修改自己的代码。打开自定义 URL 时,插件如何知道您需要什么?
好的,我知道为什么https://github.com/EddyVerbruggen/Custom-URL-scheme
中没有这样的实现了
那是因为在cordova-ios
CDVHandleOpenURL.m中已经包含了这样的实现,它会消费CDVAppDelegate.m
发布的通知,而在CDVHandleOpenURL.m
中,它将在 WebView JavaScript 命名空间中执行 handleOpenURL
。
我的应用程序无法运行的原因是,Cordova 被包裹在 Oracle MAF 框架中,它覆盖了 Cordova 提供的自定义 URL 机制,这不是我所期望的,所以我原问题中忘记提到MAF了,我会补充相关信息。
参考:
https://docs.oracle.com/middleware/maf210/mobile/develop-maf/maf-ui-remote-url.htm#ADFMF24147
我唯一能找到的插件就是这个https://github.com/EddyVerbruggen/Custom-URL-scheme
我尝试安装它并检查它的 iOS 实现,它在 plugins/cordova-plugin-customurlscheme/src/
里面是空的(没有找到 ios
文件夹,只有 android
和 window
).我查看了plugins/cordova-plugin-customurlscheme/www/ios/LaunchMyApp.js
,内容是:
"use strict";
/*
Q: Why an empty file?
A: iOS doesn't need plumbing to get the plugin to work, so..
- Including no file would mean the import in index.html would differ per platform.
- Also, using one version and adding a userAgent check for Android feels wrong.
- And if you're not using PhoneGap Build, you could paste your handleOpenUrl JS function here.
*/
没有意义,按我的理解,应该在AppDelegate
中实现func application(_application: UIApplication, open url: URL, options: [UIApplicationOpenURLOptionsKey : Any] = [:] ) -> Bool
,但它是空的。在这种情况下,如何在 JS
中覆盖 handleOpenURL
会起作用?
我真的找不到其他的,谁能推荐类似的可用插件?我的场景是,当 A 应用程序调用 B 应用程序时,我的 B 应用程序是一个 cordova 应用程序,我需要一个 listener/callback 来捕获 url 内容。
已更新:
添加在MAF
标签中,因为问题是由Oracle MAF框架引起的,没想到,认为问题来自Cordova。
它不应该在 iOS 中实现某些东西。自定义 URL 方案仅更新 iOS 中的 Info.plist
。所以,没关系。它注册自定义 URL 方案。
要处理 URL 它们,您需要修改自己的代码。打开自定义 URL 时,插件如何知道您需要什么?
好的,我知道为什么https://github.com/EddyVerbruggen/Custom-URL-scheme
中没有这样的实现了那是因为在cordova-ios
CDVHandleOpenURL.m中已经包含了这样的实现,它会消费CDVAppDelegate.m
发布的通知,而在CDVHandleOpenURL.m
中,它将在 WebView JavaScript 命名空间中执行 handleOpenURL
。
我的应用程序无法运行的原因是,Cordova 被包裹在 Oracle MAF 框架中,它覆盖了 Cordova 提供的自定义 URL 机制,这不是我所期望的,所以我原问题中忘记提到MAF了,我会补充相关信息。
参考: https://docs.oracle.com/middleware/maf210/mobile/develop-maf/maf-ui-remote-url.htm#ADFMF24147