在Google Play商店中是否可以实现此功能,或者是否有其他可能的方法来打开原生订阅管理器?与这个问题相同,但是针对Android:链接到应用商店中的应用程序管理订阅。
我使用Action View打开Google Play商店 -> 账户。
private fun openPlaystoreAccount() {
try {
startActivity(Intent(Intent.ACTION_VIEW, Uri.parse("https://play.google.com/store/account?utm_source=google&utm_medium=account&utm_campaign=my-account")));
} catch (e: ActivityNotFoundException) {
showToast("Cant open the browser")
e.printStackTrace()
}
}
更新:
谷歌发布了一种新的深层链接,它可以直接将用户带到您的应用程序管理订阅页面。您需要两个东西SKU和您的应用程序包名称。
示例URL:
https://play.google.com/store/account/subscriptions?sku=yoursku&package=com.yourpackagename
Kotlin示例代码:
private val packageName = "com.mydomain.myapp"
private val sku = "mySku"
private fun openPlaystoreAccount() {
try {
startActivity(Intent(Intent.ACTION_VIEW, Uri.parse("https://play.google.com/store/account/subscriptions?sku=$sku&package=$packageName")))
} catch (e: ActivityNotFoundException) {
showToast("Cant open the browser")
e.printStackTrace()
}
}
我找不到如何链接到特定应用程序的订阅页面。但是,访问订阅页面的url是:https://play.google.com/store/account/subscriptions。当您在Android设备上时,此url将在Play商店应用中打开。
adb shell am start -a "android.intent.action.VIEW" -d https://play.google.com/store/account/subscriptions
- undefinedhttps://developer.android.com/google/play/billing/subscriptions#deep-link
“用户购买订阅后,可以从Play Store应用程序的“我的应用”屏幕或应用程序在Play Store应用程序中的产品详细信息页面查看订阅并取消订阅。” < p >< code > market://details?id = YOUR_APP_ID < / code > < / p >从今年的IO开始,可以使用深度链接来链接到您的订阅:
https://play.google.com/store/account/subscriptions?sku=*yoursku*&package=*com.yourpackagename*
只需使用普通意图打开此URL即可。
更详细的解释 -
1)用户已经拥有订阅
在这种情况下,当您调用 billingClient.queryPurchases()
时,它会返回一个 PurchaseResult
。其中包含详细信息,例如 purchaseToken
、sku
以及 packagename
。每次应用程序启动或 MainActivity
被恢复时都会进行此调用,因为如果有人离线购买您的 IAP,则您还需要对购买进行 acknowledge
(有关详细信息请参见 此处)。
这意味着您也可以让用户“管理”订阅,因此可以使用深度链接链接到:
https://play.google.com/store/account/subscriptions?sku=skuName&package=packageName
2) 用户即将购买订阅:
购买订阅的方法是捕获您在Play控制台中创建的SUBS IAP的productId
或Sku
。然后,您需要构建flowParams
,然后才能调用。
val flowParams = BillingFlowParams.newBuilder()
.setSkuDetails(skuDetails)
.build()
billingClient.launchBillingFlow(activity, flowParams)
BillingResult
和MutableList<Purchase>
。如果BillingResult
为OK
且返回的列表不为空,则购买成功。此对象还具有sku
和packageName
,因此您可以像上面一样遵循相同的深链接让用户Manage
他们的订阅。https://play.google.com/store/account/subscriptions
,以便他们可以恢复或重新订阅之前的Sku
。Play Store
应用程序支持多个用户。因此,只有当Play Store
应用程序选择了正确的用户时,深链接才有效。
val context = LocalContext.current
val packageName = context.applicationContext.packageName
val subscription_id = "Your subcription ID"
val PLAY_STORE_SUBSCRIPTION_DEEPLINK_URL = "https://play.google.com/store/account/subscriptions?product=%s&package=%s"
val url = String.format(PLAY_STORE_SUBSCRIPTION_DEEPLINK_URL,
subscription_id, packageName);
subscription_id
@Composable
fun MyButton(url:String) {
val uriHandler = LocalUriHandler.current
Button(onClick = { uriHandler.openUri(url) }){
Text("Subscriptions")
}
}