iOS JDAPP相关跳转协议

2015-09-10 00:18:03   来源:   评论: 点击:

iOSJDAPP相关跳转协议一、js->Native跳转(JDNewWebViewController)openapp jdmobile: communication?params={"action":"syncShareData","title":"手机大抢劫-51电信","content":"

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?标识不同的 host host 主要分为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.host virtual 时:

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. host communication 或者其他时

例如:

 

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 里面惯用的一种实现手段,这个过程包括两个过程。( 1 js-native , ( 2 native->js

 

过程 1 :主要依靠 UIWebView   代理方法 webView: shouldStartLoadRequest : navigationType 方法,当 js 页面发生 url location 的动作时间, 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处理

 

 

 

 

 

 

 

 

 

 

 

 

 

iOS JDAPP相关跳转协议

相关热词搜索:

上一篇:Android Studio中gitignore编写 下一篇:Android新控件RecyclerView浅析及上拉和下拉刷新
分享到: 收藏