2010年8月30日月曜日

[iPhone] UIWebViewのリンクからSafariを開く方法

UIWebViewのリンクからSafariを開く方法

参照:

UIWebViewDelegateを利用する。

Interface BuilderでUIWebViewのdelegateを設定する。


以下のコードを追加
// リンクをクリック時、Safariを起動する為の処理
- (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType {
if (navigationType == UIWebViewNavigationTypeLinkClicked) {
NSLog(@"URL = %@", [[request URL] absoluteString]);
[[UIApplication sharedApplication] openURL:[request URL]];
return NO;
}

return YES;
}


以下はソース全体
WebViewTestAppDelegate.h
//
// WebViewTestAppDelegate.h
// WebViewTest
//
// Created by BABUKUMA on 10/08/30.
// Copyright babukuma.com 2010. All rights reserved.
//

#import <UIKit/UIKit.h>

@interface WebViewTestAppDelegate : NSObject <UIApplicationDelegate> {
UIWindow *window;
IBOutlet UIWebView *webView;
}

@property (nonatomic, retain) IBOutlet UIWindow *window;

@end


WebViewTestAppDelegate.m
//
// WebViewTestAppDelegate.m
// WebViewTest
//
// Created by BABUKUMA on 10/08/30.
// Copyright babukuma.com 2010. All rights reserved.
//

#import "WebViewTestAppDelegate.h"

@implementation WebViewTestAppDelegate

@synthesize window;


#pragma mark -
#pragma mark Application lifecycle

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {

// Override point for customization after application launch.

[window makeKeyAndVisible];

// WebViewの初期表示
NSLog(@"BABUKUMA : WebViewの初期表示");
NSURL *url = [NSURL URLWithString:@"http://babukuma.com"];
NSURLRequest *request = [NSURLRequest requestWithURL:url];
[webView loadRequest: request];

return YES;
}

// リンクをクリック時、Safariを起動する為の処理
- (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType {
if (navigationType == UIWebViewNavigationTypeLinkClicked) {
NSLog(@"URL = %@", [[request URL] absoluteString]);
[[UIApplication sharedApplication] openURL:[request URL]];
return NO;
}

return YES;
}


- (void)applicationWillResignActive:(UIApplication *)application {
}


- (void)applicationDidEnterBackground:(UIApplication *)application {
}


- (void)applicationWillEnterForeground:(UIApplication *)application {
}


- (void)applicationDidBecomeActive:(UIApplication *)application {
}


- (void)applicationWillTerminate:(UIApplication *)application {
}


#pragma mark -
#pragma mark Memory management

- (void)applicationDidReceiveMemoryWarning:(UIApplication *)application {
}


- (void)dealloc {
[window release];
[super dealloc];
}


@end

[iPhone] UIWebView의 링크를Safari로 열기

UIWebView의 링크를 Safari로 열기

참고링크:

결론은 UIWebViewDelegate를 이용한다.

Interface Builder에서 UIWebView의 delegate를 설정하고,


다음의 코드를 추가한다.
// 링크를 클릭했을 때, Safari를 열기위한 처리.
- (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType {
if (navigationType == UIWebViewNavigationTypeLinkClicked) {
NSLog(@"URL = %@", [[request URL] absoluteString]);
[[UIApplication sharedApplication] openURL:[request URL]];
return NO;
}

return YES;
}


테스트시 사용한 전체 코드
WebViewTestAppDelegate.h
//
// WebViewTestAppDelegate.h
// WebViewTest
//
// Created by BABUKUMA on 10/08/30.
// Copyright babukuma.com 2010. All rights reserved.
//

#import <UIKit/UIKit.h>

@interface WebViewTestAppDelegate : NSObject <UIApplicationDelegate> {
UIWindow *window;
IBOutlet UIWebView *webView;
}

@property (nonatomic, retain) IBOutlet UIWindow *window;

@end


WebViewTestAppDelegate.m
//
// WebViewTestAppDelegate.m
// WebViewTest
//
// Created by BABUKUMA on 10/08/30.
// Copyright babukuma.com 2010. All rights reserved.
//

#import "WebViewTestAppDelegate.h"

@implementation WebViewTestAppDelegate

@synthesize window;


#pragma mark -
#pragma mark Application lifecycle

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {

// Override point for customization after application launch.

[window makeKeyAndVisible];

// WebViewの初期表示
NSLog(@"BABUKUMA : WebViewの初期表示");
NSURL *url = [NSURL URLWithString:@"http://babukuma.com"];
NSURLRequest *request = [NSURLRequest requestWithURL:url];
[webView loadRequest: request];

return YES;
}

// リンクをクリック時、Safariを起動する為の処理
- (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType {
if (navigationType == UIWebViewNavigationTypeLinkClicked) {
NSLog(@"URL = %@", [[request URL] absoluteString]);
[[UIApplication sharedApplication] openURL:[request URL]];
return NO;
}

return YES;
}


- (void)applicationWillResignActive:(UIApplication *)application {
}


- (void)applicationDidEnterBackground:(UIApplication *)application {
}


- (void)applicationWillEnterForeground:(UIApplication *)application {
}


- (void)applicationDidBecomeActive:(UIApplication *)application {
}


- (void)applicationWillTerminate:(UIApplication *)application {
}


#pragma mark -
#pragma mark Memory management

- (void)applicationDidReceiveMemoryWarning:(UIApplication *)application {
}


- (void)dealloc {
[window release];
[super dealloc];
}


@end

2010年8月12日木曜日

[Android] INSTALL_PARSE_FAILED_NO_CERTIFICATES

アンドロイドアプリで開発したアプリを端末にインストルするとき
INSTALL_PARSE_FAILED_NO_CERTIFICATES」エラーが出てインストルできなくなった。

開発モードアプリケーションへの署名問題らしいけど、
アンインストールして再インストールしても失敗して悩んだ。

原因まではまだわからないが、
パケージ名を変えたらインストルできるようになった。

原因はなんだろ。。。
開発途中で何回かアプリ名を変えたりパケージ名を変えたりしたのが原因かな?

2010年8月5日木曜日

[Android] お前の体重を見ろ! v0.9

今日「お前の体重を見ろ!」の0.9バージョンをアップした。
「お前の体重を見ろ!」は簡単に体重管理できるアンドロイド用の無料アプリだ。
無料だから気楽に使って欲しい!

今回のバージョンアップ内容は
v0.9
1. 体脂肪グラフ追加
2. BMIとBMRの説明追加
3. バグ対応
- 体重グラフで(kg)しか表示されないバグ









次はCSVインポート機能等を追加する予定。

[Android] 니 몸무게를 봐라! v0.9

오늘 「니 몸무게를 봐라!」v0.9를 업데이트하였다.
「니 몸무게를 봐라!」는 간단한 체중관리 무료 안드로이드 어플이다.

v0.9
1. 체지방그래프 추가
2. BMI와 BMR 용어설명 추가
3. 버그수정
- 체중그래프에 (kg)만 표시되는 버그







다음에는 CSV파일 가져오기를 추가해야겠다.