iOS JDAPP相关跳转协议

iOS  JDAPP相关跳转协议

 

一、js->Native 跳转(JDNewWebViewController

openapp.jdmobile://communication?params={"action":"syncShareData","title":"手机大抢劫-51电信","content":"","shareUrl":"http://sale.jd.com/app/act/BJQPi7tEwsYrTyk.html","iconUrl":""}

 

openapp.jdmobile://virtual?params={"category":"jump","des":"productDetail","skuId":"1157957","sourceType":"homefloor","sourceValue":"4384", "landPageId":"jshop.cx.mobile"}

 

其中openapp.jdmobile://前缀固定,communication?标识不同的hosthost主要分为virtual以以communication两种,virtual标识活动落地页与相关跳转分支,communication表示其他分支

 

params字段对应的value是一个json串,上面举例的经过decodeios系统实现)后的value{"action":"syncShareData","title":"手机大抢劫-51电信","content":"","shareUrl":"http://sale.jd.com/app/act/BJQPi7tEwsYrTyk.html","iconUrl":""}

 

1.hostvirtual时:

json串里面的des字段,标识要去的app原生页,des值与跳转原生页的对应关系:

例如:

params={"category":"jump","des":"productDetail","skuId":"1157957","sourceType":"homefloor","sourceValue":"4384", "landPageId":"jshop.cx.mobile"}

 

Des

跳转原生页

 

activity

跳转到活动

(type)

1:ActivitylistVC

2:PromotionWareListVC

promotion

跳转到促销卖场的活动列表

 

textContainer

跳转到文本容器

 

getCoupon

跳转到领券页面

 

Cart

跳转到购物车

 

m

跳转到虚拟页面

 

productDetail

跳转到商品详情

 

Movie

跳转到电影票

 

cutPrice

跳转到砍啊砍

 

shake

跳转到摇一摇

 

jshopMain

跳转到店铺页面

 

productList

跳转到列表:分类列表、搜索列表

 

DM

跳转到活动m页面

 

jd_native_jimi

跳转JIMI

 

jd_native_im

跳转IM

 

share

显示分享弹出框

 

wuliuchaxun

跳转到物流抽奖M页面,最近一月订单

 

JvglassMail

跳转到大图页面

 

homeIcons

交与首页楼层Manger去执行跳转

 

HomePage

跳转到首页

 

Discovery

跳转到发现

 

getXB

跳转至小冰

 

seckill

跳转秒杀

 

orderlist

跳转到全部订单

 

ordertrace

跳转到订单跟踪

 

airTicket

跳转本地机票

 

couponCenter

跳转到领券中心

 

goodsRecommend

精品推荐

 

worthBuy

值得买

 

phoneSale

手机专享

 

faxian

跳转到原生发现楼层

 

jshopBrand

跳转店铺街

 

myDNA

跳转到我的DNA

 

 

 

2. hostcommunication或者其他时

例如:

 

openapp.jdmobile://communication?params={"action":"syncShareData","title":"手机大抢劫-51电信","content":"","shareUrl":"http://sale.jd.com/app/act/BJQPi7tEwsYrTyk.html","iconUrl":""}

 

Des

跳转

 

payId

交与支付组件处理

 

action= “share”

调用分享组件

 

action= “syncShareData”

同步分享数据

 

 

 

 

 

 

 

 

 

 

 

1.json串里面的payId字段,若不为空,则跳转到支付组件统一处理,

 

2.json串里面的TokenKey字段,若不为空,则跳转对应的是第三方登陆,同上

3.json串里面的action字段,若不为空,根据actionname进行相关处理(例如:share,syncShareData)

 

总结: 

js<=>native 通信手段是目前JDApp里面惯用的一种实现手段,这个过程包括两个过程。(1js-native, (2native->js

 

过程1:主要依靠UIWebView  代理方法webView: shouldStartLoadRequest : navigationType方法,当js页面发生urllocation的动作时间,webview会捕捉到这一事件,然后对准url中参数做解析,做相应操作。(目前存在的弊端,appmenuHandle 处理逻辑中,随着页面数量越来越多,if判断逻辑越来越深,可能有性能方面的问题)。

 

过程: 目前过程2 app使用较少,native->js主要依靠[UIWebView stringByEvaluatingJavaScriptFromString:@”js代码”]

二、远程推送跳转协议:

1. ios client接收到远程推送消息后进行相关处理

客户端一共分两个步骤完成这个过程,

 

-(void)application:(UIApplication*)application didReceiveRemoteNotification:(NSDictionary*)userInfo;

处理userInfo;

 

-(BOOL)application:(UIApplication*)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions ;

处理launchOptions

 

 

调用MessageManager的handleRemoteNotification方法,来控制跳转。

 

2MessageManager处理协议

userInfo是一个字典,首先会进行剥离处理

 

 

数据合法以后会跟解析参数进行跳转

type

跳转

 

MessageType_Broadcast = 20,

MessageType_Custom = 31,

// 广播消息

// 定制推送消息(促销消息)

 

MessageType_WareDelivered = 5,  

MessageType_Discount = 6,       

MessageType_Appointment = 50,   

MessageType_FixTimeSend = 52,   

// 到货通知

// 降价通知

//预约提醒

//定期送提醒

 

MessageType_Coupon = 11,        

MessageType_CouponExpire = 13

// 优惠券

 

MessageType_PayRemind = 8,

//支付提醒

 

MessageType_Logistics = 10,     

MessageType_CanPickup = 3,      

MessageType_Electric = 4,

MessageType_TailPay = 12,

// 物流信息

// 用户自提

//大家电派工

//预售付尾款

 

 

MessageType_Consult = 1

// 咨询回复

 

其他

根据msgid处理消息

 

 

 

 

  1. 消接收后是存在一个字典里面,客户端需要针对消息体里面的值进行解析处理,具体的处理全部交付MessageManager类处理

 

总结推送消息跳转:  1.app杀掉状态,点击消息栏目进入,走didFinishLaunchingWithOptions 处理参数 launchOptions  2. App开启状态,直接在代理里面接收处理消息体。

 

 

 

三、ios客户端openURL跳转协议

 

iOS客户端通过openURL打开app时间相关跳转协议处理

通过由其他渠道跳转并打开京东app的过程,相关跳转协议的处理

 

 

 

 

 

host 360buy

 

key

 

 

PartnerOpenAppType_home = 1,

PartnerOpenAppType_detail = 2,

PartnerOpenAppType_search = 3,

PartnerOpenAppType_activity     = 4,  //活动页

PartnerOpenAppType_glass        = 5   //大图页

首页

商详

搜索

活动

大图

 

functionName=“loginFromSafari"

暂无

 

functionName=“virtual"

AppManager处理

 

 

 

 

 

 

 

 

 

 

 

 

 

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。