【问题标题】:Does 'Samsung Apps' support a URI scheme to redirect to specific apps?“三星应用程序”是否支持 URI 方案以重定向到特定应用程序?
【发布时间】:2012-04-26 22:31:14
【问题描述】:

我的一位客户热衷于在许多流行的三星设备上推广他的完整应用的“精简版”版本。这个精简版将上传到http://www.samsungapps.com,然后用户可以通过the 'Samsung Apps' app下载它。精简版具有指向完整应用的应用内链接。

现在,我一直在三星的网站上搜索有关 URI 方案的任何信息,三星应用程序可以获取并使用该方案直接向用户展示完整应用程序的相关详细信息。对于 Google Play 和 Amazon,您可以简单地使用特定的 URI 方案和应用程序的包名称触发意图;例如:

谷歌播放:

marketIntent.setData(Uri.parse("market://details?id=" + FULL_VERSION_PACKAGE_NAME));

亚马逊:

marketIntent.setData(Uri.parse("http://www.amazon.com/gp/mas/dl/android?p=" + FULL_VERSION_PACKAGE_NAME));

所有这些都记录在案,而且很容易找到。但是,我无法弄清楚三星应用程序是否为类似行为提供了自己的 URI 方案。

我确实发布了,因为我们在这里讨论的是 Android 设备,所以我可以链接到 Google Play。对我来说,三星会提供一个类似市场的系统而无法链接到那里的特定产品,这让我觉得很奇怪,所以我希望我忽略了一些东西。

有人对此有任何指示吗?请注意,我没有与三星应用程序兼容的设备来实际测试任何东西。

【问题讨论】:

  • @MH..ah~..这是关于三星产品的问题。我是韩国人,在首尔已经 50 多年了。我对三星应用有一些想法。如果您对韩国产品或应用有任何疑问,请与我联系。

标签: android android-intent


【解决方案1】:

所以我终于设法找到隐藏在 pdf 文档中的问题的答案。标题为"Samsung Apps Deeplink Guide",可以从三星资源中心下载。

对于那些对整个文档不感兴趣的人,其中包含有关如何在三星应用程序中调用特定屏幕的一些信息,答案很简单。使用以下格式将 URI 附加到 Intent 的数据:

samsungapps://ProductDetail/<the package name of the AndroidManifest.xml>

例如,Samsung Apps 中的 Samsung Apps 应用程序的直接链接(措辞仍然有意义?)将是:

samsungapps://ProductDetail/com.sec.android.app.samsungapps

因此,该应用确实支持类似于 Google Play 和 Amazon 的 URI 方案,正如怀疑的那样。

请注意,我还无法对此进行测试,但我确实遇到了最近的raised flag(从 2012 年 4 月 27 日起),显然此功能突然停止工作。根据对该标志的回复,三星开发人员正在对其进行调查,但我可能会暂缓此事,直到确认修复。

【讨论】:

  • @deeJ:很抱歉这么晚才回来,但我直到今天才能够测试它。我可以确认最新的 Samsung Apps 应用程序确实过滤了数据 Uri 设置为上述格式的意图。显然,开发人员不久前打破了这个功能,但一切似乎又恢复了正常。希望对您有所帮助。
  • 我也确认更新到最新的三星应用程序可以解决这个问题。现在它以我的应用程序页面为焦点启动了三星应用程序。非常感谢。
【解决方案2】:

我使用以下代码通过包名链接到 Google Play、Amazon Appstore 和 Samsung Galaxy Apps。

public static final String MARKET_GOOGLE_URL = "market://details?id=";
public static final String WEB_GOOGLE_URL = "http://play.google.com/store/apps/details?id=";

public static final String MARKET_SAMSUNG_URL = "samsungapps://ProductDetail/";
public static final String WEB_SAMSUNG_URL = "http://www.samsungapps.com/appquery/appDetail.as?appId=";

public static final String MARKET_AMAZON_URL = "amzn://apps/android?p=";
public static final String WEB_AMAZON_URL = "http://www.amazon.com/gp/mas/dl/android?p=";

public static void openOnMarket(String market, String web, Context context, String packageName) {

    try {
        Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse(market + packageName));
        intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
        context.startActivity(intent);
    } catch (android.content.ActivityNotFoundException anfe) {
        Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse(web + packageName));
        intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
        context.startActivity(intent);
    }

}


public static void openOnGooglePlayMarket(Context context, String packageName) {
    openOnMarket(MARKET_GOOGLE_URL, WEB_GOOGLE_URL, context, packageName);
}

public static void openOnSamsungMarket(Context context, String packageName) {
    openOnMarket(MARKET_SAMSUNG_URL, WEB_SAMSUNG_URL, context, packageName);
}

private static void openOnAmazonMarket(Context context, String packageName) {
    openOnMarket(MARKET_AMAZON_URL, WEB_AMAZON_URL, context, packageName);
}

一开始尝试通过URI打开市场应用,但如果找不到打开网页链接。 我希望这段代码对某人有用。

【讨论】:

  • WEB_SAMSUNG_URL 是否仍在使用上面的确切字符串?我尝试了现有的应用程序,但没有工作。任何人都可以分享一个工作的吗?我只是被重定向到 (samsung.com/in/apps/mobile/galaxyapps/?redirectionId=http://…) 而不是应用页面
  • @AndroidMechanic ,是的,WEB_SAMSUNG_URL 仍在使用上面的确切字符串
【解决方案3】:

这是一个较新文档的链接 Interworking Guide for Android Samsung Apps

【讨论】:

  • 这实际上指向与我原始答案相同的文档。我确实注意到深层链接已损坏,因此将其删除。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-05-21
  • 1970-01-01
  • 1970-01-01
  • 2012-12-16
  • 2014-04-05
  • 1970-01-01
相关资源
最近更新 更多