diff --git a/.changes/change-pr-3214.md b/.changes/change-pr-3214.md new file mode 100644 index 000000000..8da80a941 --- /dev/null +++ b/.changes/change-pr-3214.md @@ -0,0 +1,6 @@ +--- +"deep-link": patch +"deep-link-js": patch +--- + +Account for differing Android VIEW intent in ChromeOS, fixing deep-link behaviour on Chromium platforms. diff --git a/plugins/deep-link/android/src/main/java/DeepLinkPlugin.kt b/plugins/deep-link/android/src/main/java/DeepLinkPlugin.kt index b51cd7cc0..b8ae02271 100644 --- a/plugins/deep-link/android/src/main/java/DeepLinkPlugin.kt +++ b/plugins/deep-link/android/src/main/java/DeepLinkPlugin.kt @@ -44,11 +44,14 @@ class DeepLinkPlugin(private val activity: Activity): Plugin(activity) { private var currentUrl: String? = null private var channel: Channel? = null private var config: PluginConfig? = null - companion object { var instance: DeepLinkPlugin? = null } + private fun isViewIntent(action: String?): Boolean { + return action == Intent.ACTION_VIEW || action == "org.chromium.arc.intent.action.VIEW" + } + @Command fun getCurrent(invoke: Invoke) { val ret = JSObject() @@ -74,7 +77,7 @@ class DeepLinkPlugin(private val activity: Activity): Plugin(activity) { val intent = activity.intent - if (intent.action == Intent.ACTION_VIEW && intent.data != null) { + if (isViewIntent(intent.action) && intent.data != null) { val url = intent.data.toString() if (isDeepLink(url)) { // TODO: check if it makes sense to split up init url and last url @@ -87,7 +90,7 @@ class DeepLinkPlugin(private val activity: Activity): Plugin(activity) { } override fun onNewIntent(intent: Intent) { - if (intent.action == Intent.ACTION_VIEW && intent.data != null) { + if (isViewIntent(intent.action) && intent.data != null) { val url = intent.data.toString() if (isDeepLink(url)) { this.currentUrl = url diff --git a/plugins/deep-link/build.rs b/plugins/deep-link/build.rs index 2499d26f7..3b32a7369 100644 --- a/plugins/deep-link/build.rs +++ b/plugins/deep-link/build.rs @@ -25,6 +25,8 @@ fn intent_filter(domain: &AssociatedDomain) -> String { format!( r#" + + {schemes}