Archive

Archive for the ‘语言编程’ Category

MAC OS编译iOS版Linphone SDK和APP

October 28th, 2015 No comments

最近由于开发一款基于SIP通信的VOIP应用程序项目需要,自己研究了一下几款开源SIP实现,主要有PJSIP和Linphone,PJSIP由于文档说明详细,编译和测试都没有费多大事情。Linphone的编译就比较费神费力了,开始之前查看互联网上的资料,大家都说各种痛苦折磨,后来自己实践了一把,除了文档说明奇缺之外,编译还算顺利,除了调查耗费了不少时间。

Read more…

Categories: 移动互联, 语言编程 Tags:

Android强制使用WebView不调用系统或外部浏览器

October 21st, 2015 No comments

HTML5 HYBIRD混合APP需要在H5页面中打开第三方网站(例如:百度),android默认不在当前WebView中打开,反而会调用系统或外部浏览器,解决办法是自己重写WebViewClient,覆盖shouldOverrideUrlLoading并让其返回True。

实现代码

mWebView.setWebViewClient(new WebViewClient() {
    public boolean shouldOverrideUrlLoading(WebView view, String url)
      {
            // webview自己加载URL,让后通知系统不需要HandleURL
            view.loadUrl(url);
            return true;
      }
});

Read more…

Categories: 语言编程, 零敲碎打 Tags: ,

[Android]解决HttpURLConnection上传大文件时出现OOM问题

July 21st, 2015 No comments

做Android开发时通常使用HttpURLConnection来进行文件的上传,但是,如果需要上传较大文件时就不建议使用了,HttpURLConnection使用时如果编写程序不当会在上传时导致另人抓狂的OOM问题,在Android开发时如果需要上传较大文件建议使用Apache HttpComponents的组件HttpClient来进行文件上传处理。同时这个组件目前还有Android专用的版本(HttpClient for Android),具体用法如下:
1.下载并导入HttpClient组件,可以只下载httpmime-4.1.1.jar或直接下载Android HttpClient版的源代码
Read more…

Categories: 语言编程 Tags:

[WP]WP-ReplaceGravatarMirror插件

July 16th, 2015 3 comments

最近,伟大的中华神墙再次发威,屏蔽掉了Wordpress等博客系统广泛使用的Gravatar头像系统,Wordpress在大陆使用时会出现Gravatar无法加载而导致的异常缓慢,好在国内的duoshuo.com提供了国内使用的Gravatar镜像系统,目前来说通行使用正常,于是花了一点时间写了一个Wordpress可以使用的插件,可以解决由于GFW屏蔽导致的Gravatar头像无法加载和加载缓慢的问题,在此分享给大家,欢迎下载使用。

插件名称:WP-ReplaceGravatarMirror
插件说明:插件说明页面
使用方法:
1.下载最新版本的WP-ReplaceGravatarMirror,解压已下载完成的文件。下载地址:https://github.com/limccn/WP-ReplaceGravatarMirror/tree/master/release/1.0
2.将解压后的wp-replace-gravatar-mirror文件夹上传到服务器的plugins目录下,或者使用Wordpress自带的上传安装插件功能
3.进入Wordpress后台,在插件选项卡中激活WP-ReplaceGravatarMirror
Read more…

iOS开发之APP进入后台禁止自动截图

August 26th, 2014 Comments off

iOS在7.0以后,APP进入后台后会把当前APP的Window状态记录,并对Window进行截图操作,会在APP的Sandbox的Library\Caches\Snapshots\xxxx.xxx.xxx文件夹中增加以下几个文件。这有可能会造成用户敏感数据的泄密。
UIApplicationAutomaticSnapshotDefault-LandscapeLeft.png
UIApplicationAutomaticSnapshotDefault-LandscapeRight.png
[email protected]
[email protected]

Read more…

iOS开发之Objective-c的AES加密和解密算法的实现

August 26th, 2014 6 comments

高级加密标准(Advanced Encryption Standard,AES),又称Rijndael加密法。
以下实现代码中分别为NSData和NSString增加了一个Category。使用时直接调用即可。

需要注意的是,AES并不能作为HASH算法,加密并解密后的结果,并不一定与原文相同,使用时请注意进行结果验算。例如解密原文的长度,格式规则等。
NG实例

原文:170987350
密码:170

Read more…

iOS开发之Objective-c的SHA224/SHA256/SHA384/SHA512加密算法的实现

August 26th, 2014 No comments

之前在博文中实现的SHA1的安全性已经满足不了用户需求,今天把SHA224/SHA256/SHA384/SHA512的实现一并附上。
SHA即Secure Hash Algorithm(安全散列算法)有多种不同位数的实现,常见的有SHA224/SHA256/SHA384/SHA512等

SHA224:

- (NSString*) sha224
{
    const char *cstr = [self cStringUsingEncoding:NSUTF8StringEncoding];
    NSData *data = [NSData dataWithBytes:cstr length:self.length];
 
    uint8_t digest[CC_SHA224_DIGEST_LENGTH];
 
    CC_SHA224(data.bytes, data.length, digest);
 
    NSMutableString* output = [NSMutableString stringWithCapacity:CC_SHA224_DIGEST_LENGTH * 2];
 
    for(int i = 0; i < CC_SHA224_DIGEST_LENGTH; i++)
        [output appendFormat:@"%02x", digest[i]];
 
    return output;
}

Read more…