计本 iPhone手机应用开发设计(爱炒股) - 图文(7)

2020-02-21 22:07

LAContext *myContext = [[LAContext alloc] init]; NSError *authError = nil;

NSString *myLocalizedReasonString = @\请输入指纹\;

if ([myContext canEvaluatePolicy:LAPolicyDeviceOwnerAuthenticationWithBiometrics error:&authError]) { [myContext evaluatePolicy:LAPolicyDeviceOwnerAuthenticationWithBiometrics localizedReason:myLocalizedReasonString

reply:^(BOOL success, NSError *error) { if (success) { // 验证成功

} else { //验证失败

} }]; } else { // 设备不支持 }

6.6 通知

目前,在市场上的大多数移动应用软件中当前都只有一个应用程序是处于相对活跃状态的,那么

想要其他的应用能够在当前发生某些事情以激发用户的兴趣,需要使用的便是通知机制。在iOS系统平台中又将通知机制称作消息机制,iStock应用中运用到两种通知机制,一种是本地通知,另一种是远程推送通知。这两类通知都可以通过横幅或者弹出提醒的形式推送到用户的手机屏幕上,当用户点击该通知信息时,即可触发相应的事件,比如最普通的打开应用,或者打开应用后处理某些事情等等。 6.6.1 本地通知

本地通知是由本地应用触发而产生的,它是某一特定触发事件引起的一种通知形式。当应用长期

不使用时,在应用中设定时间然后进行消息的推送,同样属于本地听通知。实现本地通知的推送主要有以下几步:

1、创建UILocalNotification; 2、配置相关参数;

3、设置通知的主体、声音、角标等; 4、自定义参数的相关设置; 5、调用通知。

在iStock项目中,使用的是腾讯信鸽,它将本地通知和推送通知进行了集成。本地推送的关键代

码如下:

31

//推送通知

NSDate *fireDate = [[NSDatenew] dateByAddingTimeInterval:5];

NSMutableDictionary *dicUserInfo = [[NSMutableDictionaryalloc] init]; [dicUserInfo setValue:@\forKey:@\]; NSDictionary *userInfo = dicUserInfo;

NSString *message = [NSStringstringWithFormat:@\成交!买入%@(%@),成交金额%.2f元\,stockDeal.stockName,stockDeal.stockCode,stockDeal.delegateDealMoney];

[XGPushlocalNotification:fireDate alertBody:message badge:1alertAction:@\确定%userInfo:userInfo];

如图6-5,为交易成功后,进行的本地通知。

图6-5 本地通知

图6-6 推送通知

6.6.2 远程推送通知

远程推送通知是由应用服务提供商发起的,通过苹果的APNs(Apple Push Notification Server)

发送到应用客户端。在服务器与用户手机之间会形成一条连接链路。远程推送的消息即通过该链路而实时送达用户的手机上。

图6-7 供应商向客户端远程推送示意图

如图6-7中的远程推送示意图可看到,首先由应用服务提供商从服务端把要发送的消息和token发送给APNs,然后APNs根据设备token在已注册的设备查找对应的设备,将消息发送给相应的设备,

[2]

32

最后客户端设备接将接收到的消息传递给相应的应用程序,应用会根据用户设置的方式来弹出通知消息,从而引导用户操作。

图6-8 远程推送细化流程图

以下是实现远程推送的详细步骤:

1、应用程序要注册APNs推送消息(首先需要配置好provisioning profile文件信息); 2、移动端从APNs接收token; 3、应用将token发送到服务器;

4、当应用服务提供商需要进行消息推送时,服务器将信息发送给APNs; 5、APNs根据token查找已注册的设备进行推送消息。

在iStock应用中通过使用腾讯信鸽成功进行远程推送消息,客户端收到推送消息如图6-6显示。 关键代码如下:

[2]

33

- (void)registerPushForIOS8{ ?? }

- (void)registerPush{

[[UIApplicationsharedApplication] registerForRemoteNotificationTypes:(UIRemoteNotificationTypeAlert | UIRemoteNotificationTypeBadge | UIRemoteNotificationTypeSound)]; }

-(void)application:(UIApplication *)application didReceiveLocalNotification:(UILocalNotification *)notification{ //notification是发送推送时传入的字典信息

[XGPushlocalNotificationAtFrontEnd:notification userInfoKey:@%userInfoValue:@\]; //删除推送列表中的这一条

[XGPushdelLocalNotification:notification]; }

- (void)application:(UIApplication *)application didRegisterForRemoteNotificationsWithDeviceToken:(NSData *)deviceToken {

NSString * deviceTokenStr = [XGPushregisterDevice:deviceToken]; void (^successBlock)(void) = ^(void){ //成功之后的处理

NSLog(@\,deviceTokenStr); };

void (^errorBlock)(void) = ^(void){ //失败之后的处理

NSLog(@\); }; //注册设备

[[XGSettinggetInstance] setChannel:@\]; [[XGSettinggetInstance] setGameServer:@\巨神峰\];

[XGPushregisterDevice:deviceToken successCallback:successBlock errorCallback:errorBlock]; }

- (void)application:(UIApplication*)application didReceiveRemoteNotification:(NSDictionary*)userInfo {

//推送反馈(app运行时)

[XGPushhandleReceiveNotification:userInfo]; }

6.7模拟交易实现过程

为了更加真实的模拟股票交易的过程,添加了撤单功能。在买入或卖出时,首先进入挂单状态,

在未成交的状态时,用户可以随时撤单,即取消该交易。而当该单自动成交后,用户便不能撤单。同时,为了模拟显示交易时数据的安全,增加指纹交易功能,该功能可在设置中进行开启或者关闭。

34

/

图6-9 模拟交易过程图

6.7.1 买入

用户进入买入界面输入股票的代码后,会自动加载该股票的名称、当前价格、五档挂单数据、涨

跌停价格、上证深成指数以及用户当前账户以当前股票价格所能购买的最大数量。

在用户输入买入数量后,系统会对该数据进行判断,判断条件为: 1、必须为100的整数倍; 2、必须小于可买数量。

同时,在修改委托价格时,为了避免用户的不小心而导致委托价格远偏离当前价格,在用户修改

委托价格后,在一定的时间内,系统会自动刷新该数据。以及委托数量为空或者股票代码为空时,都不能进行买入。用户在正常交易流程下点击买入按钮后,系统将该条买入信息添加至数据库中,并在后台新开辟线程进行实时刷新该股数据。在达到成交条件后,系统将自动进行交易,并且在交易成功后进行本地推送通知。

关键代码如下:

35


计本 iPhone手机应用开发设计(爱炒股) - 图文(7).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:Fluent计算时outflow 与 pressure outlet的区别

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: