iPhoneアプリにAboutBoxを実装
iPhoneアプリにAboutBoxを実装するためのメモ。
今回、自分のiPhoneアプリにAboutBoxを追加してみることにした。追加の理由は2つ。
- 無料版から多少でも収益を得るために、Admobを追加したかった。(そもそも使ってみたかったのもあるが)
- 無料版と比べて有料版のダウンロードが少ないので、有料版への導線を増やしたかった
.png)
Admob はアプリのメイン画面に入れるのが一番効果は高いのだと思うが、画面が狭くなるしうざいのでAboutBoxにのみ入れることにした。実装には、下記を参照した。
Admobはサイズ320×48 で固定。 広告を入れたり、他のAdmob登録アプリを紹介したりできる。その割合は管理ページで調整ができる。結構良くできていると思った。
ただ、なぜかよくロードに失敗する。ちゃんとAdmobの説明通りに実装しているのだが。(上記のコードで一言。のやり方と同じ)
Admob 対応の次は、自分のアプリへの導線を増やすために、有料版の App Store のURLと自分のWebページへのリンクをAboutBoxに追加した。
最初、AppleのQA1629の方法1を使っていたのだが、どうもURLの仕様が変わったようで現在は使えないようだ。方法1とは、iTunes 上でアプリアイコンを右クリックしてURLを取得し、取得したURLの itunes の部分を phobos に変更するもの。 QA1629 では、http://phobos.apple.com/WebObjects/MZStore.woa/wa/viewSoftware?id=284417350&mt=8 が例としており、それはAppleのRemoteだが、Remoteを今iTunesでURLを取得すると、http://itunes.apple.com/us/app/remote/id284417350?mt=8 になりこれを phobos に変更するとページが見つかりませんエラーになる。
仕方がないのでphobosに変えるのはあきらめてiTunesで取得できるURLそのままを使用したところ、iPhone Simulatorではエラーが発生して開けない。ただ、実機だと問題なく開けるので、これはSimulator特有の問題なのかも知れない。
直接関係ないが、この作業をしている間に、iTunes Link Maker なるものを初めて知った。iTunes 上のコンテンツを表示するためのHTMLを生成するツールのようだ。
文字列に下線を入れてクリックして指定したURLに飛べるようにする実装だが、当初UILabelか何かにサポートがあるかと思ったらどうやらないようで、いろいろ試行錯誤したが結局UIButtonをCustomにして枠を表示しないようにするだけでそれっぽく表示できたのでそれで済ませた。
Webページ自体はWebViewを使うほどでもないと思ったので Safari を起動して開くことにした。コードは書くまでもないけれどこんな感じ。
-(IBAction) openOnpuURL:(id)sender { NSString *str = NSLocalizedString(@"http://itunes.apple.com/us/app/id%d?mt=8", @"OnpuURL"); NSURL *target = [[NSURL alloc] initWithString:[NSString stringWithFormat:str, OnpuAppID]]; [[UIApplication sharedApplication] openURL:target]; }
AboutBox 自体は、UIViewControllerの navigationItem に UIButtonTypeInfoLight のボタンを追加して、そこから呼ばれた関数内で presentModalView することで表示した。
UIButton* infoButton = [UIButton buttonWithType:UIButtonTypeInfoLight]; [infoButton addTarget:self action:@selector(showInfoView:) forControlEvents:UIControlEventTouchUpInside]; self.navigationItem.leftBarButtonItem = [[UIBarButtonItem alloc] initWithCustomView:infoButton];
<br />
// AboutBox 表示<br />
-(void)showInfoView:(id)sender {<br />
<br />
InfoViewController *controller = [[InfoViewController alloc] initWithNibName: @"InfoViewController" bundle: nil];<br />
// controller.delegate = self;<br />
<br />
controller.modalTransitionStyle = UIModalTransitionStyleCoverVertical;<br />
<br />
[self presentModalViewController: controller animated: YES];<br />
[controller release];<br />
}<br />
Submit したアプリは現在審査中。
関連記事
-
-
UITableViewCell セルの再利用の問題
設定画面に他の自作アプリ情報を加えたりしようと思い、UITableViewController で1
-
-
スマートフォン手袋を買ってみた 2010
今使っている手袋に穴が空いたので、せっかくなのでスマートフォンが使える手袋を買ってみようと思い探して
-
-
はじめてのiPhoneプログラミング
さらにiPhoneプログラミング本が出るらしい。出版ラッシュですな。 これは568ページもあるらしい
-
-
初 iPadアプリ おんぷちゃん for iPad 公開
iPadグランドオープニングに間に合わせるためしばらく格闘していたがようやく おんぷちゃん for
-
-
Apple Event Sep 2022 Far Out
毎年恒例の Apple Event が 2022/09/07 に行われた。日本時間は 9/8 2:
-
-
Application tried to present a nil modal view controller on target 問題
MFMailComposeViewController を使ってメール送信ダイアログを表示しようとし
-
-
[iPhone開発のネタ帳] loadView, viewDidLoad と viewDidUnload 2011/08/12
拙作のiPadアプリ タッチ!にほんちず や タッチ!ヨーロッパ地図でUIWebViewContro
-
-
[iPhone SDK] アプリケーションのローカライズ
iPhoneアプリを作っていて、一通り作り終わったら最後にやる作業の一つとして、ローカライズがある。
-
-
[iOS SDK] Pebble腕時計対応iOSアプリを作る
英単語学習アプリ WordLearnをリリースしましたに書いたけれども今Pebble腕時計対応iOS
-
-
プログラムを使ってiPhoneアプリを終了する方法
「ゲームを終了しますか? YES」的なダイアログを出してアプリを終了しようと思ったときに、どうするか