@yanglfyangl
2018-06-22T09:05:34.000000Z
字数 970
阅读 513
Intent未来不一定是只有广告使用,凡是可能由后端来控制前端的,都可以使用。包括发定义消息,然后可以打开某个页面,都可以使用类似的思路。
几个重点:
- 需要android和ios都尽量小的改动。
- 同时也尽量支持未来的扩展。
服务器端Intent协议:
{//SourceType,这个设计最好是不光支持Ad, 未来的推送,SMS打开APP时的内容传递,也走这个设计思路。"SourceType": "AD|Push|SMS, 信息的来源","ViewType": "Major|ListVied|DetailView","TargetViewName": "(MainView|CircleDetailView|...)","Action": "View|Edit",//Flag主要用于页面的显示方式。"Flag": "CreateNew|ClearOnTop|BringToTop",//Major表示主流程页面,比如地图页,一级圈子页等"MajorPara": {"detailID": "可选,主要用于detail view;","Extra": {}}//只有选择DetailView的时候才会存在"DetailPara": {"detailID": "可选,主要用于detail view;","Extra": {}}//只有选择ListView的时候才会存在""ListPara": {"categoryID": "本列表上级ID,如果存在的话","filterType": "过滤条件,如果存在的话","Extra": {}}}
客户端Intent处理伪代码:
/*处理来自服务器的Intent数据请求*/class IntentResolver:{Map<String, T> viewMap; //Android和IOS的方法不一样,但都需要建立这个对应关系表。/*type可能为:"AD", "PUSH", "QUBAO"...*/void handleIntent(String type, String Json){// Android和IOS各自解析//ios可以根据对应的view与controller的对应关系来找到viewController,将参数进行转换,打开页面//Androd根据对应的对应关系,拼intent,进行页面切换。}。。。}