iPhoneのアプリケーションはアドレス帳や写真からデータにアクセスできます。また、Webの内容をアプリケーション内に埋め込むこともできます。
アドレス帳のアクセス方法
既存のデータ利用
ABPeoplePickerNavigationController
ABPersonViewController
データ生成
ABNewPersonViewController
未処理データの扱い
ABUnknownPersonViewController
データの読み書き
ABAddressBookCopyPeopleWithName
ABPersonCopyImageData
ABPersonCreate
ABRecordSetValue
注意事項
CFRetaiとCFReleaseを使用すること
CopyとCreateを使用したときは必ず解放すること
Getは自身でメモリを確保していないらしく、解放する必要がないらしい
写真のアクセス方法
iPhoneやiPod touchの写真ライブラリから写真を表示する方法// 写真ライブラリが空でないことを確認
if ([UIImagePickerController isSourceTypeAvailable:
UIImagePickerControllerSourceTypePhotoLibrary]) {
UIImagePickerController *picker;
picker = [[UIImagePickerController alloc] init];
picker.sourceType = UIImagePickerControllerSourceTypePhotoLibrary;
picker.allowsImageEditing = YES;
picker.delegate = self;
[currentViewController presentModalViewController:picker animated:YES];
}
カメラは上記のソースを少し変更するだけで利用できます。
// 写真ライブラリが空でないことを確認
if ([UIImagePickerController isSourceTypeAvailable:
UIImagePickerControllerSourceTypeCamera]) { // Cameraになっています
UIImagePickerController *picker;
picker = [[UIImagePickerController alloc] init];
picker.sourceType = UIImagePickerControllerSourceTypeCamera; // Cameraになっています
picker.allowsImageEditing = YES;
picker.delegate = self;
[currentViewController presentModalViewController:picker animated:YES];
}
写真の編集
元になる関数は以下の通りです。
- (void) imagePickerController:(UIImagePickerController *) picker
didFinishPickingImage:(UIImage *) imagePickerController
editingInfo:(NSDictionary *) editingInfo {
// 必要に応じてイメージを処理
[self saveImage;image];
}
例です。
- (void) imagePickerController:(UIImagePickerController *) pickerdidFinishPickingImage:(UIImage *) image
editingInfo:(NSDictionary *)editingInfo{
// 元のイメージを入手
UIImage *origialImage = [editingInfo
valueForKey:UIImagePickerControllerOriginalImage];
// メタデータとして保存
[self saveTagZone:[editingInfo
valueForKey:UIImagePickerControllerCropRect]];
}
Webの内容を入手
// Web viewを生成CGRect rect = [[UIScreen mainScreen] appicationFrame];
UIWebView *webView = [[UIWebView alloc] initWithFrame:rect];
// 電話番号の検出機能を切る
webView.detectsPhoneNumbers = NO;
// Web viewにURLをロード
NSURL url = [NSURL URLWithString:@"http://foo.com"];
NSURLRequest *req = [NSURLRequest requestWithURL:url];
[webView loadRequest:req];
以下の方法でURLを開く感覚で他のアプリケーションを開くこともできると言っています。
NSURL *url = [NSURL URLWithString:@"http://apple.com"];
[[UIApplication sharedApplication] openURL:url];
URLに応じて以下のアプリケーションを開くことができると言っています。
Safari:http://, https://, feed://
Mail;mailto:
Google Map:http://maps.google.com/
You Tube:http://www.youtube.com/
iTunes:itms://
独自アプリケーション:myapp://
独自アプリケーションをURLで起動できるようにするにはinfo.plistに以下の項目を追加します。
CFBundleURLType Array
0 Dictionary
CFBundleURLName String My Custom URL
CFBundleURLSchemes Array
0 String myapp
LSIsAppleDeaultForScheme Boolean Yes
- (BOOL)application:(UIApplication *) application
handleOpenURL:(NSURL *) uel {
// 送られてきた問い合わせの文字列を入手
NSString *queryString = [url query];
// 送られてきた文字列から情報を取得...
//キーと値を処理 ...
}
他のiPhoneとの通信
Bonjourを使用して通信できるとしていますが、消費電力が増大し電池使用時間が短くなる、とも言っています。
0 件のコメント:
コメントを投稿