ARTICLE · INTELLIGENCE

战地情报 · 详情页

来自尧图项目组的一线实战观察与深度解析

UniApp接入鸿蒙版京东联盟

UniApp接入鸿蒙版京东联盟

鸿蒙 京东联盟 登录、唤起京东、在京东搜索、打开指定页面、加购物车-示例

Dcloud 插件市场:https://ext.dcloud.net.cn/plugin?id=30195

创建应用

京东联盟官网:https://union.jd.com/index

  • 注意:京东联盟创建应用需要审核,应用需要先上架应用商店,才会审核通过

获取并配置安全图

  • 点开审核通过的应用,下载SDK

  • 文件解压后,包含以下三个文件:Demo、需要引入项目的SDK、安全图片

  • 安全图片存放到 harmony-configs/entry/src/main/resources/rawfile内,没有则依次创建

harmony-configs整体目录结构

配置harmony-configs目录下的module.json5

  • 在 abilities.skills.entities 里添加 “entity.system.browsable”

  • 在 abilities.skills.actions 里添加 “ohos.want.action.viewData”

  • 将 abilities.skills.uris.scheme 改成 sdkback+京东联盟应用的appkey

  • 在 requestPermissions 里添加权限 ohos.permission.GET_NETWORK_INFO 和 ohos.permission.GET_WIFI_INFO

  • 在 querySchemes 里添加 openapp.jdmobile

完整的json文件如下
{"module":{"name":"entry","type":"entry","description":"$string:module_desc","mainElement":"EntryAbility","deviceTypes":["phone","tablet"],"deliveryWithInstall":true,"installationFree":false,"pages":"$profile:main_pages","abilities":[{"name":"EntryAbility","srcEntry":"./ets/entryability/EntryAbility.ets","description":"$string:EntryAbility_desc","icon":"$media:layered_image","label":"$string:EntryAbility_label","startWindowIcon":"$media:startIcon","startWindowBackground":"$color:start_window_background","exported":true,"skills":[{"entities":["entity.system.home","entity.system.browsable"],"actions":["action.system.home","ohos.want.action.viewData"],"uris":[{"scheme":"sdkbackad2e6eaf1343fc3962a6e17cb1ce0ae"//换成京东联盟应用的appkey}],}]}],"requestPermissions":[{"name":"ohos.permission.INTERNET"},{"name":"ohos.permission.GET_NETWORK_INFO",},{"name":"ohos.permission.GET_WIFI_INFO"}],"metadata":[],"querySchemes":["openapp.jdmobile",],}

方法使用说明

引用插件

// #ifdef APP-HARMONYimport*asjdunionfrom'@/uni_modules/hmos-jdunion'// #endif

1. 初始化

jdunion.init(appkey,keySecret).then((res)=>{if(res){console.log('JDUnion Init Failure',res);}else{console.log('JDUnion Init Success');}}).cathc((err)=>{console.log('JDUnion Init Error',err.message);})

2. 使用链接打开京东

jdunion.openJDUrlPage({url:url.value,paramOrCallback:(res)=>{console.log('openJDUrlPage paramOrCallback:',res)},callback:(res)=>{console.log('openJDUrlPage callback:',res)},})

3. 使用skuId打开京东

jdunion.openJDItemDetailsPage({itemSKU:itemSKU.value,paramOrCallback:(res)=>{console.log('openJDItemDetailsPage paramOrCallback:',res)},callback:(res)=>{console.log('openJDItemDetailsPage callback:',res)},})

4. 去京东App搜索

jdunion.openJDSearchPage({searchKey:searchKey.value,paramOrCallback:(res)=>{console.log('openJDSearchPage paramOrCallback:',res)},callback:(res)=>{console.log('openJDSearchPage callback:',res)},})

5. 打开购物车界面

jdunion.openJDCartPage({paramOrCallback:(res)=>{console.log('openJDCartPage paramOrCallback:',res)},callback:(res)=>{console.log('openJDCartPage callback:',res)},})

6. 打开个人订单中心

jdunion.openJDOrderListPage({paramOrCallback:(res)=>{console.log('openJDOrderListPage paramOrCallback:',res)},callback:(res)=>{console.log('openJDOrderListPage callback:',res)},})

7. 用户登录态验证

jdunion.openJDOrderListPage({paramOrCallback:(res)=>{console.log('openJDOrderListPage paramOrCallback:',res)},callback:(res)=>{console.log('openJDOrderListPage callback:',res)},})

8. 用户登录

jdunion.login({loginCheckCB:(res)=>{console.log('login loginCheckCB:',res)}})

9. 单品加入购物车

jdunion.addSkuToCart({skuCartParam:{skuId:skuId.value},resultCB:(res)=>{console.log('addSkuToCart resultCB:',res)}})

10. 多品批量加购

jdunion.addMultSkuToCart({skuCartParam:{skuIds:skuIds.value,// 需要批量添加的商品的skuId,多种商品通过","分隔。skuCounts:skuCounts// 需要批量添加的商品的skuId对应的商品数量,必须与skuIds对应,多种商品通过","分隔。},resultCB:(res)=>{console.log('addMultSkuToCart resultCB:',res)}})

11. 直接打开指定页面

jdunion.openJDWebPage({url:pageUrl.value,adParam:{keplerCustomerInfo:adParam.keplerCustomerInfo,// string|undefined 开普勒订单业务参数识别,上报到订单xml中心positionId:adParam.positionId,// string|undefined 推广位Id,对应联盟转链入参推广位idmopenbp7:adParam.mopenbp7,// string|undefined 设置返回小把手标识,如果已经设置了全局标识appBackTagID,则此参数失效appName:adParam.appName,// string|undefined 特价版留用appSchema:adParam.appSchema,// string|undefined 特价版留用appBundleId:adParam.appBundleId// string|undefined 特价版留用}}).then((res)=>{if(res){console.log('openJDWebPage Failure:',res)}else{console.log('openJDWebPage Success')}})

12. 获取SDK版本

console.log('SDKVersion:',jdunion.getSdkVersion)
RELATED READING

延伸阅读

更多一线实战笔记与深度复盘,助您持续精进