在 Android/iOS 从另一个应用启动 PWA 添加到主屏幕

Launch PWA Add To Home Screen from another app on Android/iOS

我有一个有点奇怪的问题,我实际上并不知道正确的术语,所以如果我说错了什么,请纠正我,这样我就可以更好地提出这个问题。现在我想我更专注于 Android 因为我有一个并且可以很容易地模拟和测试,但最终我想让它在 iOS.

上工作

目标:启动一个 PWA(渐进式 Web 应用程序),该应用程序已通过 A2HS (Add To Home Screen) 从另一个应用程序添加到我的设备的主屏幕。

所以我目前有两个 PWA 通过 google chrome 添加到我的主屏幕,分别是 PWA1PWA2.这些 URL 在通过 chrome 访问时可以通过 A2HS 添加到我的主页,当我打开它时,它的功能和外观就像一个应用程序。

我目前正在开发另一个名为 MyApp 的应用程序,我想知道如何启动我的 PWA1PWA2 从 MyApp 中。我知道我可以使用 PackageManager and intent 来启动我设备上安装的其他应用程序来启动应用程序,但由于这些实际上不是真正的应用程序,我不知道如何访问保存在我的主屏幕上的应用程序。

我很确定我可以在我的应用程序打开 com.android.chrome 上实现按钮,但这只会打开 chrome 应用程序,而不是我主屏幕上的 PWA。那么我该怎么做呢?

我的第一个想法是,在 Android OS 或 Chrome 的某处,可以查找添加到主屏幕的可用 PWA。如果我能找到我希望有一种方法可以指定 chrome 或我想启动的 PackageManager com.android.chrome:PWA1 它将加载添加到我的主屏幕的那个.

任何关于这是否可行或我应该澄清的反馈都将不胜感激!

我已经触发提示选择从PWA或浏览器打开link

我正在使用 Chrome 中的自定义选项卡,您可以阅读实现 here

像这样:

CustomTabsIntent.Builder().apply {
        setShowTitle(true)
        setUrlBarHidingEnabled(true)
        setColorScheme(COLOR_SCHEME_SYSTEM)
        setInstantAppsEnabled(false)
        setStartAnimations(this@openWeb, R.anim.right_in, R.anim.left_out)
        setExitAnimations(this@openWeb, R.anim.left_in, R.anim.right_out)
        setShareState(SHARE_STATE_OFF)
    }.build().launchUrl(this, Uri.parse("https://your.pwa.url"))

如果您在设备中安装了 PWA,当使用自定义选项卡打开 link 时...它应该会触发提示,如下所示:

或者,如果您选择 PWA 作为默认应用来处理您的 link,它应该会自动打开您的 PWA