安卓通过链接打开淘宝客户端
最近在项目中遇到了一个需求,那就是安卓客户端没有集成SDK,通过链接打开淘宝客户端。在网上搜索了很多,自己综合并总结了一下,记录下来。
思路:首先判断手机上是否安装有淘宝客户端。如果有就跳转淘宝,如果没有则跳转网页。
if (checkPackage(mContext, "com.taobao.taobao")) {Intent intent = new Intent();intent.setAction("android.intent.action.VIEW");Uri uri = Uri.parse(YourUrlPath);// 你的商品地址intent.setData(uri);
// intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);//此句代码决定是否在APP内打开淘宝
// intent.setClassName("com.taobao.taobao", "com.taobao.tao.detail.activity.DetailActivity");//商品详情地址
// intent.setClassName(“com.taobao.taobao”,”com.taobao.tao.shop.router.ShopUrlRouterActivity”); //商铺地址 没测试过startActivity(intent);} else {}
public static boolean checkPackage(Context context, String packageName) {if (packageName == null || "".equals(packageName))return false;try {context.getPackageManager().getApplicationInfo(packageName, PackageManager.GET_UNINSTALLED_PACKAGES);return true;} catch (PackageManager.NameNotFoundException e) {return false;}}
除此之外,项目中还会遇到在自己的APP中打开第三方的APP。方法如下:
/*** 打开本地第三方应用** @param pkg 第三方应用的包名* @param cls 第三方应用的进入的第一个Activity*/
private void openApp(String pkg, String cls) {ComponentName componet = new ComponentName(pkg, cls);Intent intent = new Intent();intent.setComponent(componet);intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);startActivity(intent);
}
获取第三方应用的包名和进入的第一个Activity的方法如下:
private void getPkgAndCls(){Intent mainIntent = new Intent(Intent.ACTION_MAIN, null);mainIntent.addCategory(Intent.CATEGORY_LAUNCHER);PackageManager mPackageManager = this.getPackageManager();List<ResolveInfo> mAllApps = mPackageManager.queryIntentActivities(mainIntent, 0);//按包名排序Collections.sort(mAllApps, new ResolveInfo.DisplayNameComparator(mPackageManager));for(ResolveInfo res : mAllApps){//该应用的包名和主ActivityString pkg = res.activityInfo.packageName;String cls = res.activityInfo.name;LogUtil.i("data===","===pkg===" +pkg );LogUtil.i("data===","===cls===" + cls );}
}
public class ShopAppUtil {public static void openTaoBaoApp(Context context, String title, String url) {Log.i("data===", "===url===" + url);if (checkPackage(context, "com.taobao.taobao")) {if (url.startsWith("https://")) {url = url.replaceFirst("https://", "taobao://");}if (url.startsWith("http://")) {url = url.replaceFirst("http://", "taobao://");}if (url.startsWith("tbopen://")) {url = url.replaceFirst("tbopen://", "taobao://");}Intent intent = new Intent();intent.setAction("android.intent.action.VIEW");Uri uri = Uri.parse(url);intent.setData(uri);intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);context.startActivity(intent);} else {openWebView(context, title, url);}}public static void openTianMaoApp(Context context, String title, String url) {if (checkPackage(context, "com.tmall.wireless")) {if (url.startsWith("https://")) {url = url.replaceFirst("https://", "tmall://");}Intent intent = new Intent();intent.setAction("android.intent.action.VIEW");Uri uri = Uri.parse(url);intent.setData(uri);intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);context.startActivity(intent);} else {openWebView(context, title, url);}}public static void openJingDongApp(Context context, String title, String url) {if (checkPackage(context, "com.jingdong.app.mall")) {if (url.startsWith("https://")) {url = url.replaceFirst("https://", "jingdong://");}Intent intent = new Intent();intent.setAction("android.intent.action.VIEW");Uri uri = Uri.parse(url);intent.setData(uri);intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);context.startActivity(intent);} else {openWebView(context, title, url);}}public static void openPinDuoDuoApp(Context context, String title, String url) {if (checkPackage(context, "com.xunmeng.pinduoduo")) {if (url.startsWith("https://mobile.yangkeduo.com/app.html?launch_url=")) {url = url.replaceFirst("https://mobile.yangkeduo.com/app.html?launch_url=", "pinduoduo://com.xunmeng.pinduoduo/");}Intent intent = new Intent();intent.setAction("android.intent.action.VIEW");Uri uri = Uri.parse("pinduoduo://com.xunmeng.pinduoduo/" + url);intent.setData(uri);intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);context.startActivity(intent);} else {openSystemWeb(context, url);}}public static void openWebView(Context context, String title, String url) {if (url.startsWith("taobao://")) {url = url.replaceFirst("taobao://", "https://");}if (url.startsWith("tbopen://")) {url = url.replaceFirst("tbopen://", "https://");}if (url.startsWith("tmall://")) {url = url.replaceFirst("tmall://", "https://");}if (url.startsWith("yangkeduo://")) {url = url.replaceFirst("yangkeduo://", "https://");}if (url.startsWith("pinduoduo://")) {url = url.replaceFirst("pinduoduo://", "https://");}
// Intent intent = new Intent(context, WebViewActivity.class);
// intent.putExtra(WebViewActivity.KEY_TITLE, title);
// intent.putExtra(WebViewActivity.KEY_URL, url);
// context.startActivity(intent);}public static void openSystemWeb(Context context, String url) {try {Intent intent = new Intent();intent.setAction("android.intent.action.VIEW");Uri content_url = Uri.parse(url);intent.setData(content_url);context.startActivity(intent);} catch (Exception e) {e.printStackTrace();}}public static boolean checkPackage(Context context, String packageName) {if (packageName == null || "".equals(packageName)) return false;try {context.getPackageManager().getApplicationInfo(packageName, PackageManager.GET_UNINSTALLED_PACKAGES);return true;} catch (PackageManager.NameNotFoundException e) {return false;}}}
安卓通过链接打开淘宝客户端相关推荐
- iOS 类似复制链接打开淘宝APP后弹出页面功能
写在前面 我们应该都有用过这个功能,你的朋友微信给你分享了一个淘宝里面的商品链接,然后当你复制这个链接打开淘宝APP的时候,就会弹出一个弹窗,像这样: example.PNG 这个功能想必大家都挺熟悉 ...
- 安卓手机网页打开淘宝总是弹出应用市场
手机上不想装淘宝的app,但有时候又需要查一下淘宝上的东西的价格却遇到标题中的问题. 目前有两种方法,只针对chrome浏览器. 第一是打开新的无痕标签页 第二是请求切换到桌面版网站 转载于:http ...
- 在自己的app中打开淘宝
需求:在app中打开淘宝客户端,包括打开店铺和商品 1)打开商品: Intent intent = new Intent(); intent.setAction("android.inten ...
- 极客日报:中国批准AMD收购赛灵思;微信可直接打开淘宝链接购买商品;马斯克称今年将实现全自动驾驶
一分钟速览新闻点! 中国附加限制性条件批准AMD收购赛灵思 张一鸣再退出多家字节跳动关联公司职务 腾讯计划对斗鱼进行私有化 2022职场摸鱼报告:超9成年轻人平时工作会摸鱼 微信可直接打开淘宝链接购买 ...
- 微信可以打开淘宝链接,淘宝也在测试微信支付,但真的都很别扭
微信开了门,淘宝也在开窗,但都还只是一条缝的那种. 近日 " 淘宝内测微信支付 " 的消息引发关注.据多家媒体报道,部分用户在淘宝付款时发现了 " 微信扫码支付 &quo ...
- 重大利好:微信可以打开淘宝和抖音链接【全平台进销存软件】
大家好,我是小编v兔.这两天,对电商行业最利好的消息,就是微信可以打开淘宝和抖音了.那么,这意味着什么呢?意味着流量或将全线打通,也就是公域与私域的无缝连接. 大家都知道,现在的谁手里握着流量,谁就有 ...
- 使用URL SCHEME启动淘宝客户端并跳转到某个商品页面的方法
// 构建淘宝客户端协议的 URLNSURL *url = [NSURL URLWithString:[NSString stringWithFormat:@"taobao://item.t ...
- 当打开淘宝的那一刻,它就知道你想要的是什么
在当今人们的日常生活中,手机占据了重要的角色.在大多数人的手机里,已经装满了各种五花八门的手机应用,无时无刻不在想着瓜分我们的时间. 很多时候,我们惊奇的发现,手机上的应用越用越聪明,智能手机真的越用 ...
- 点击微信内网页a标签直接跳转打开淘宝APP的方法实例
点击微信里面的网页a标签,就可以跳转到预设的APP页面,不需要通过浏览器唤起APP 代码如下: <a href="https://t.asczwa.com/taobao?backurl ...
最新文章
- HarmonyOS 设置图标在Text 旁边
- IT人士还是要善待自己
- 编译QT出错 Basic XLib functionality test failed!
- 《学习Opencv》第五章 习题6
- js获取当前url_javascript如何获取当前URL的主机名?
- 使用临时表的另外一种方式
- Python里面如何拷贝一个对象?
- geddy mysql_以ToDoList应用来学习Geddy
- 新兴市场成为联想如何7年超越三星的胜负关键
- 64java下载_java软件下载|java64 v8.0 官方版-520下载站
- mac 无法对计算机进行更改,解析深度技术win10 MAC不能修改的原因和解决成功的技巧...
- Maya用样条线制作面片头发
- ai的布尔运算在哪_在AI中如何进行布尔运算
- 重装系统时出现windows root\system32\ntoskrnl.exe 损坏或者丢失?解决方法。。。。。。
- 混合云是什么,混合云是怎么工作的?
- bigemap高德离线地图开发教程
- MIME type和后缀名(扩展名)之间的关系
- 【链表】判断链表是否有环-快慢指针
- Correlation wave-front sensing algorithms for Shack-Hartmann-based Adaptive Optics using a point sou
- linux操作系统安装phonopy