MH.*_*MH. 27 android android-intent
我的一位客户热衷于在众多流行的三星设备上推广他的完整应用程序的"精简"版本.此精简版将上传至http://www.samsungapps.com,然后用户可以通过"Samsung Apps"应用程序下载.Lite版本具有完整应用程序的应用内链接.
现在,我一直在搜索三星的网站,了解有关三星应用程序可以提取和使用的URI方案的任何信息,以直接向用户呈现完整应用程序的相关详细信息.对于Google Play和亚马逊,您只需使用特定的URI方案和应用的包名称即可启动意图; 例如:
Google Play:
marketIntent.setData(Uri.parse("market://details?id=" + FULL_VERSION_PACKAGE_NAME));
Run Code Online (Sandbox Code Playgroud)
亚马逊:
marketIntent.setData(Uri.parse("http://www.amazon.com/gp/mas/dl/android?p=" + FULL_VERSION_PACKAGE_NAME));
Run Code Online (Sandbox Code Playgroud)
这些都记录在案,非常直接.但是,我无法弄清楚Samsung Apps是否为类似的行为提供了自己的URI方案.
我确实发布了,因为我们在这里谈论Android设备,我可以链接到Google Play.我觉得奇怪的是,三星会提供类似市场的系统而无法链接到那里的特定产品,所以我希望我忽略了一些东西.
有人对此有任何指示吗?请注意,我没有与Samsung Apps兼容的设备来实际测试任何内容.
MH.*_*MH. 45
所以我终于找到了隐藏在pdf文档中的问题的答案.它的标题是"Samsung Apps Deeplink Guide",可以从三星的资源中心下载.
对于那些对整个文档不感兴趣的人,其中包含有关如何在Samsung Apps应用程序中调用特定屏幕的一些信息,答案很简单.Intent使用以下格式将URI附加到数据:
samsungapps://ProductDetail/<the package name of the AndroidManifest.xml>
Run Code Online (Sandbox Code Playgroud)
例如,三星应用程序中的Samsung Apps应用程序的直接链接(措辞仍然有意义吗?)将是:
samsungapps://ProductDetail/com.sec.android.app.samsungapps
Run Code Online (Sandbox Code Playgroud)
因此,该应用确实支持类似于Google Play和亚马逊的URI方案.
请注意,我还没有能够测试这个,但我确实遇到了最近提升的旗帜(从2012年4月27日开始),显然这个功能突然停止了.根据对该旗帜的回应,三星开发者正在调查它,但我可能会暂时停止这一点,直到确认修复.
我使用以下代码按包名链接到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);
}
Run Code Online (Sandbox Code Playgroud)
它首先尝试通过URI打开市场应用程序,但如果没有找到打开的Web链接.我希望这段代码对某人有用.
| 归档时间: |
|
| 查看次数: |
15540 次 |
| 最近记录: |