84741998 2014-06-06
在做第二张卡的时候,需要用到接收短信的机制,而生成工程时候,没有生成接收短信的文件Sms.js,所以在做短信的处理之前先引入了sms.js的文件到自己的工程里。
1 模拟系统回复短信
在之后要将自己的工程打包装到模拟器上测试的时候,要在自己的工程里引入cordova的插件,目前在页面上测试,我用conslose.log("/*回复的内容*/")来模拟系统发短信
2 页面显示报名人的姓名和联系电话,姓名靠左,电话靠右
之前我做的时候姓名和电话不在一行上,一个靠左显示一个靠右显示,但是显示的时候需要去掉分行,在yeoman下做的时候,修改一下haml文件的列表显示。
实例:
%li(ng-repeat="current in currents") .header-left {{current.name}} .header-right {{current.phone}}
列表内左边显示姓名,右边显示电话,分行就没有了。
3 提取BM并判断是否要保存短信
先将短信中的前两个字符提取出来,并将其转换为大写的字母,如果是BM才对该短信进行处理,否则不接收
var get_bm=json_message.messages[0].message.substr(0, 2).toUpperCase();
toUpperCase(),可以实现将字母转换为大写
4 报名短信的存储
之前在做party_bid的时候,在存储报名短信的时候在Sms.js里面定义了一个数组和数组的属性,在yeoman工程下做的时候,创建了一个对短信处理的model,在model里实现对短信的存取和处理,
实例:
保存报名短信 function Message(activity, name, phone) { this.activity = activity; this.name = name; this.phone = phone; } Message.save_message = function (json_message) { var messages = JSON.parse(localStorage.getItem('messages')) || []; var message = new Message(localStorage.starting_activity, Message.received_name(json_message), Message.received_phone(json_message)); messages.push(message); localStorage.setItem('messages', JSON.stringify(messages)); }
5 正在报名的活动对应的底色为黄色
在index.CSS的文件中写了一个样式,当返回值为start的时候即为黄色
.start{ background: yellow !important; }
在haml里给列表设置一个class
%li(class="{{activity_yellow(activity.activity)}}")
在js里面写对应的控制
$scope.activity_yellow = function (activity) { if (Activity.background_yellow(activity)) { return "start"; } }
Activity.background_yellow(activity)是从本地数据库中找到正在进行报名的活动并返回。
6 点击结束弹出二次提醒对话框
利用confrim(/*要提醒的内容*/),