日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > Android >内容正文

Android

Android App打开淘宝(店铺或商品)

發(fā)布時間:2023/12/8 Android 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Android App打开淘宝(店铺或商品) 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

目錄

?準備工作

邏輯

具體實現(xiàn)


在官方淘寶開放平臺查詢打開淘寶APP文檔,未果。各處查找資料,其中參考了《應用內(nèi)打開京東、淘寶指定商品或店鋪頁面》;發(fā)現(xiàn)未安裝淘寶app時在WebView中打開網(wǎng)頁無法下載,其中參考了《三種方式讓 Android WebView 支持文件下載》。在寫下這邊博文之前,始終覺得這種非官方打開方式存在一定隱患,比如官方需要參數(shù)發(fā)生改變導致我們Intent.setData()中的uri參數(shù)不滿足官方要求,各位有更好的方式請評論處留言。

?準備工作

  • 店鋪id或商品id
  • 淘寶app包名:com.taobao.taobao
  • 淘寶app展示店鋪uri:taobao://shop.m.taobao.com/shop/shop_index.htm?shop_id=%1$s
  • 淘寶app展示商品uri:taobao://item.taobao.com/item.htm?id=%1$s
  • webView展示店鋪uri:https://shop.m.taobao.com/shop/shop_index.htm?shop_id=%1$s
  • webView展示商品uri:https://item.taobao.com/item.htm?id=%1$

邏輯

  • 檢測本地是否安裝淘寶app
  • 安裝則打開淘寶app,否則打開webView

具體實現(xiàn)

  • 判斷本地是否安裝淘寶客戶端 /*** 檢測該包名所對應的應用是否存在** @param packageName* @return*/private static boolean checkPackage(String packageName) {return new File("/data/data/" + packageName).exists();}

    其中packageName傳入值為淘寶app包名(即com.taobao.taobao)

  • 根據(jù)判斷打開淘寶app或webView

    /*** @param activityOrFragment* @param taoBaoShopId 淘寶店鋪id* @param taoBaoGoodsId 淘寶商品id* @param reqCode*/private static void openTaobao(ComponentCallbacks activityOrFragment, String taoBaoShopId,String taoBaoGoodsId, int reqCode) {boolean shopEmpty = taoBaoShopId == null || TextUtil.isEmpty(taoBaoShopId);boolean goodsEmpty = taoBaoGoodsId == null && TextUtil.isEmpty(taoBaoGoodsId);if (shopEmpty && goodsEmpty) {return;}Context context = null;//獲取Contextif (activityOrFragment instanceof Activity) {context = (Activity) activityOrFragment;} else if (activityOrFragment instanceof Fragment) {context = ((Fragment) activityOrFragment).getContext();} else if (activityOrFragment instanceof android.app.Fragment) {context = ((android.app.Fragment) activityOrFragment).getActivity();}if (checkPackage2(MyApp.getContext().getString(R.string.taobao_package_name))) {//Intent intent = new Intent();intent.setAction(Intent.ACTION_VIEW);String uriString;if (taoBaoShopId != null && TextUtil.isEmpty(taoBaoShopId)) {uriString = MyApp.getContext().getString(R.string.taobao_app_shop, taoBaoShopId);} else {uriString = MyApp.getContext().getString(R.string.taobao_app_goods, taoBaoGoodsId);}Uri uri = Uri.parse(uriString);intent.setData(uri);if (context == null) {return;}//跳轉(zhuǎn)if (activityOrFragment instanceof Activity) {((Activity) activityOrFragment).startActivityForResult(intent, reqCode);} else if (activityOrFragment instanceof Fragment) {((Fragment) activityOrFragment).startActivityForResult(intent, reqCode);} else if (activityOrFragment instanceof android.app.Fragment) {((android.app.Fragment) activityOrFragment).startActivityForResult(intent, reqCode);}} else {String uriString;if (taoBaoShopId != null && TextUtil.isEmpty(taoBaoShopId)) {uriString = MyApp.getContext().getString(R.string.taobao_web_shop, taoBaoShopId);} else {uriString = MyApp.getContext().getString(R.string.taobao_web_goods, taoBaoGoodsId);}MallDetailActivity.startActivity(activityOrFragment, uriString, reqCode);}}
  • 調(diào)用

    /*** 查看淘寶商鋪** @param activityOrFragment* @param taoBaoShopId* @param reqCode*/public static void openShopInTaobao(ComponentCallbacks activityOrFragment,String taoBaoShopId, int reqCode) {openTaobao(activityOrFragment, taoBaoShopId, null, reqCode);}/*** 查看淘寶商品** @param activityOrFragment* @param taoBaoGoodsId* @param reqCode*/public static void openGoodsInTaobao(ComponentCallbacks activityOrFragment,String taoBaoGoodsId, int reqCode) {openTaobao(activityOrFragment, null, taoBaoGoodsId, reqCode);}
  • ?

    用到資源

    <string name="taobao_app_shop">taobao://shop.m.taobao.com/shop/shop_index.htm?shop_id=%1$s</string> <string name="taobao_app_goods">taobao://item.taobao.com/item.htm?id=%1$s</string> <string name="taobao_web_shop">https://shop.m.taobao.com/shop/shop_index.htm?shop_id=%1$s</string> <string name="taobao_web_goods">https://item.taobao.com/item.htm?id=%1$s</string> <string name="taobao_package_name">com.taobao.taobao</string>

    ?

  • 總結

    以上是生活随笔為你收集整理的Android App打开淘宝(店铺或商品)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。