如何在浏览器中打开 play.google.com/store 而不是在 PlayStore 应用程序中

问题描述 投票:0回答:1

我有这个 URL 指向我们应用程序的数据安全页面:

val url = "https://play.google.com/store/apps/datasafety?id=com.example"

当我尝试从我们的应用程序中在浏览器(而不是浏览器)中打开此页面时,PlayStore 应用程序会打开我们应用程序的起始页面,而不是数据安全详细信息。

startActivity(Intent(Intent.ACTION_VIEW, Uri.parse(url)))

有没有办法避免这种情况,强制系统用浏览器打开页面?

android android-intent browser
1个回答
0
投票

这是我解决这个问题的方法。为了强制浏览器处理意图,我们必须在意图中设置浏览器的包名称,如下所示:

val intent = Intent(Intent.ACTION_VIEW, Uri.parse(url))
intent.`package` = browserPackage
startActivity(intent)

要获得

browserPackageName
,我们可以这样做(基于https://stackoverflow.com/a/23622337/61479

val browserPackage: String? = packageManager.resolveActivity(
    Intent(Intent.ACTION_VIEW, Uri.parse("https://www.example.com")),
    PackageManager.MATCH_DEFAULT_ONLY
)?.activityInfo?.packageName

为此,我们还需要将以下内容添加到 AndroidManifest 中

<queries>
    <intent>
        <action android:name="android.intent.action.VIEW" />
        <category android:name="android.intent.category.BROWSABLE" />
        <data android:scheme="https" />
    </intent>
</queries>
© www.soinside.com 2019 - 2024. All rights reserved.