当前位置:  编程技术>移动开发
本页文章导读:
    ▪TextField输入完成后封闭键盘        TextField输入完成后关闭键盘 输入完成后按下Done键关闭键盘   在Interface Builder中选择TextField,然后在Text Field Attributes中找到Text Input Traits,选择Return Key为Done。 //按下Done键关闭键盘 - (IBAction) te.........
    ▪ APNS推送通报的流程        APNS推送通知的流程 下面是我的所有部署配置过程。 1. 将app注册notification里面, 并从APNS 上获取测试机的deviceToken. - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)l.........
    ▪ 基于zend框架的增删节和分页的实现       基于zend框架的增删改和分页的实现 23424 ......

[1]TextField输入完成后封闭键盘
    来源: 互联网  发布时间: 2014-02-18
TextField输入完成后关闭键盘

输入完成后按下Done键关闭键盘

 

在Interface Builder中选择TextField,然后在Text Field Attributes中找到Text Input Traits,选择Return Key为Done。

//按下Done键关闭键盘
- (IBAction) textFieldDoneEditing:(id)sender {
	[sender resignFirstResponder];
}

 

找到事件Did End On Exit,与textFieldDoneEditing关联。
 
如果是数字键盘,没有Done键怎么办呢,可以通过触摸背景关闭键盘

//通过触摸背景关闭键盘
- (IBAction) backgroundTap:(id)sender
{
	[nameField resignFirstResponder];
	[numberField resignFirstResponder];
}

 

选择背景的Touch Down事件,关联backgroundTap。


    
[2] APNS推送通报的流程
    来源: 互联网  发布时间: 2014-02-18
APNS推送通知的流程

下面是我的所有部署配置过程。

1. 将app注册notification里面, 并从APNS 上获取测试机的deviceToken.

  • - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {        
  •     [[UIApplication sharedApplication] registerForRemoteNotificationTypes:(UIRemoteNotificationTypeBadge | UIRemoteNotificationTypeSound)];  
  •         // other codes here.    
  •     return YES;
  • }
  • - (void)application:(UIApplication *)application didRegisterForRemoteNotificationsWithDeviceToken:(NSData *)deviceToken {
  •     NSLog(@"deviceToken: %@", deviceToken);
  • }
  • - (void)application:(UIApplication *)application didFailToRegisterForRemoteNotificationsWithError:(NSError *)error {
  •     NSLog(@"Error in registration. Error: %@", error);
  • }
  • - (void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo
  • {
  •     
  •     NSLog(@"收到推送消息 : %@",[[userInfo objectForKey:@"aps"] objectForKey:@"alert"]);
  •     if ([[userInfo objectForKey:@"aps"] objectForKey:@"alert"]!=NULL) {
  •         UIAlertView* alert = [[UIAlertView alloc] initWithTitle:@"推送通知"
  •                                                         message:[[userInfo objectForKey:@"aps"] objectForKey:@"alert"]
  •                                                        delegate:self
  •                                               cancelButtonTitle:@"关闭"
  •                                               otherButtonTitles:@"更新状态",nil];
  •         [alert show];
  •         [alert release];
  •     }
  • }

  • 启动程序,将app注册到通知项后,在console里面找到打印的deviceToken:

    复制代码
  • deviceToken: <6974ac11 870e09fa 00e2238e 8cfafc7d 2052e342 182f5b57 fabca445 42b72e1b>


  • 2. 生成app在服务端需要的许可证
    1)进入Provisioning Portal, 下载Certificates在development下的证书。
    2) 找到需要测试的app id,然后enable它在development下的Apple Push Notification service: Development Push SSL Certificate。需要输入1)中的签名证书才可以生成一个aps_developer_identity.cer.
    3) 双击aps_developer_identity.cer,会打开系统的key chain. 在My certificates下找到Apple Development Push Services。需要为certificate和它之下的private key各自export出一个.p12文件。(会出现设置密码过程)
    4)需要将上面的2个.p12文件转成.pem格式:

    复制代码
  • openssl pkcs12 -clcerts -nokeys -out cert.pem -in cert.p12
  •  

    复制代码
  • openssl pkcs12 -nocerts -out key.pem -in key.p12

  • 5)如果需要对key不进行加密:

       复制代码
  • openssl rsa -in key.pem -out key.unencrypted.pem

  • 6)然后就可以合并两个.pem文件, 这个ck.pem就是服务端需要的证书了。

       复制代码
  • cat cert.pem key.unencrypted.pem > ck.pem


  • 3.服务端push通知到ANPS. 在cocoachina找到了两种方法:
      1)php驱动。需要将ck.pem和php脚本放到server上。全部的php代码是:

         复制代码
  • <?php
  • $deviceToken = '6974ac11 870e09fa 00e2238e 8cfafc7d 2052e342 182f5b57 fabca445 42b72e1b';
  • $pass = '123456';   // Passphrase for the private key (ck.pem file)
  • // Get the parameters from http get or from command line
  • $message = $_GET['message'] or $message = $argv[1] or $message = 'A test message from worldcup';
  • $badge = (int)$_GET['badge'] or $badge = (int)$argv[2];
  • $sound = $_GET['sound'] or $sound = $argv[3];
  • // Construct the notification payload
  • $body = array();
  • $body['aps'] = array('alert' => $message);
  • if ($badge)
  •   $body['aps']['badge'] = $badge;
  • if ($sound)
  •   $body['aps']['sound'] = $sound;
  • /* End of Configurable Items */
  • $ctx = stream_context_create();
  • stream_context_set_option($ctx, 'ssl', 'local_cert', 'ck.pem');  
  • // assume the private key passphase was removed.
  • stream_context_set_option($ctx, 'ssl', 'passphrase', $pass);
  • // connect to apns
  • $fp = stream_socket_client('ssl://gateway.sandbox.push.apple.com:2195', $err, $errstr, 60, STREAM_CLIENT_CONNECT, $ctx);
  • if (!$fp) {
  •     print "Failed to connect $err $errstr\n";
  •     return;
  • }
  • else {
  •    print "Connection OK\n<br/>";
  • }
  • // send message
  • $payload = json_encode($body);
  • $msg = chr(0) . pack("n",32) . pack('H*', str_replace(' ', '', $deviceToken)) . pack("n",strlen($payload)) . $payload;
  • print "Sending message :" . $payload . "\n";  
  • fwrite($fp, $msg);
  • fclose($fp);
  • ?>

  • 请求一次 http://127.0.0.1/apns/apns.php?message=A%20test%20message%20from%20localhost&badge=2&sound=received5.caf 就会向APNS 进行一次推送。我的请求结果如下:

    复制代码
  • Connection OK
  • Sending message :{"aps":{"alert":"A test message from localhost","badge":2,"sound":"received5.caf"}}

  •     
    [3] 基于zend框架的增删节和分页的实现
        来源: 互联网  发布时间: 2014-02-18
    基于zend框架的增删改和分页的实现

    23424


        
    最新技术文章:
    ▪Android开发之登录验证实例教程
    ▪Android开发之注册登录方法示例
    ▪Android获取手机SIM卡运营商信息的方法
    ▪Android实现将已发送的短信写入短信数据库的...
    ▪Android发送短信功能代码
    ▪Android根据电话号码获得联系人头像实例代码
    ▪Android中GPS定位的用法实例
    ▪Android实现退出时关闭所有Activity的方法
    ▪Android实现文件的分割和组装
    ▪Android录音应用实例教程
    ▪Android双击返回键退出程序的实现方法
    ▪Android实现侦听电池状态显示、电量及充电动...
    ▪Android获取当前已连接的wifi信号强度的方法
    ▪Android实现动态显示或隐藏密码输入框的内容
    ▪Android Touch事件分发过程详解 iis7站长之家
    ▪Android Touch事件分发过程详解
    ▪Android中实现为TextView添加多个可点击的文本
    ▪Android程序设计之AIDL实例详解
    ▪Android显式启动与隐式启动Activity的区别介绍
    ▪Android按钮单击事件的四种常用写法总结
    ▪Android消息处理机制Looper和Handler详解
    ▪Android实现Back功能代码片段总结
    ▪Android实用的代码片段 常用代码总结
    ▪Android实现弹出键盘的方法
    ▪Android中通过view方式获取当前Activity的屏幕截...
    ▪Android提高之自定义Menu(TabMenu)实现方法
    ▪Android提高之多方向抽屉实现方法
    ▪Android提高之MediaPlayer播放网络音频的实现方法...
    ▪Android提高之MediaPlayer播放网络视频的实现方法...
    ▪Android提高之手游转电视游戏的模拟操控
     


    站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3