[关闭]
@yanglfyangl 2018-06-22T09:05:34.000000Z 字数 970 阅读 452

Intent消息协议及客户端处理思路

Intent未来不一定是只有广告使用,凡是可能由后端来控制前端的,都可以使用。包括发定义消息,然后可以打开某个页面,都可以使用类似的思路。

几个重点:

  • 需要android和ios都尽量小的改动。
  • 同时也尽量支持未来的扩展。

服务器端Intent协议:

  1. {
  2. //SourceType,这个设计最好是不光支持Ad, 未来的推送,SMS打开APP时的内容传递,也走这个设计思路。
  3. "SourceType": "AD|Push|SMS, 信息的来源",
  4. "ViewType": "Major|ListVied|DetailView",
  5. "TargetViewName": "(MainView|CircleDetailView|...)",
  6. "Action": "View|Edit",
  7. //Flag主要用于页面的显示方式。
  8. "Flag": "CreateNew|ClearOnTop|BringToTop",
  9. //Major表示主流程页面,比如地图页,一级圈子页等
  10. "MajorPara": {
  11. "detailID": "可选,主要用于detail view;",
  12. "Extra": {}
  13. }
  14. //只有选择DetailView的时候才会存在
  15. "DetailPara": {
  16. "detailID": "可选,主要用于detail view;",
  17. "Extra": {}
  18. }
  19. //只有选择ListView的时候才会存在"
  20. "ListPara": {
  21. "categoryID": "本列表上级ID,如果存在的话",
  22. "filterType": "过滤条件,如果存在的话",
  23. "Extra": {}
  24. }
  25. }

客户端Intent处理伪代码:

  1. /*
  2. 处理来自服务器的Intent数据请求
  3. */
  4. class IntentResolver:{
  5. Map<String, T> viewMap; //Android和IOS的方法不一样,但都需要建立这个对应关系表。
  6. /*
  7. type可能为:"AD", "PUSH", "QUBAO"...
  8. */
  9. void handleIntent(String type, String Json){
  10. // Android和IOS各自解析
  11. //ios可以根据对应的view与controller的对应关系来找到viewController,将参数进行转换,打开页面
  12. //Androd根据对应的对应关系,拼intent,进行页面切换。
  13. }
  14. 。。。
  15. }
添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注