@yanglfyangl
2018-06-22T09:05:34.000000Z
字数 970
阅读 452
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,进行页面切换。
}
。。。
}