ラベル iOS の投稿を表示しています。 すべての投稿を表示
ラベル iOS の投稿を表示しています。 すべての投稿を表示

[iOS] ブラウザのURL

iOS向けアプリでUIWebViewを利用したWebブラウザを作ったときに、AppleにRejectされましたので、その対応をメモしておきます。

開発5年目にしての初Rejectでした(笑)

さて、Webページの表示は、myWebViewという名前をつけたUIWebViewオブジェクトに対して、URLを渡すことによって簡単に実装できます。

    NSString *urlString = @"http://www.google.com/";
    NSURL *url = [NSURL URLWithString:urlString];
    [myWebView loadRequest:[NSURLRequest requestWithURL:url]];

URLはWikipediaによれば、「(スキーム名):(スキームごとに定められた何かの表現形式)」という形をしているとされています。

ところが、Appleのレビューアーはアドレスバーに「google.com」と入力してしまったので、myWebViewはこの文字列を適切に評価できず、次のようなエラーを吐き出しました。


これがバグに当たるということでRejectされたわけです。

URLではない文字列をアドレスバーに入れたのがバグというのかどうかは置いておいて、確かにSafariなんかは期待するWebページを開くことができるので、対応すべき問題であることは確かですね。

ということで、URLにスキーム名が含まれていなかった場合には、頭に「http://」を付加するように修正し、無事に審査を通ることができました。

    NSString *urlString = @"google.com";
    NSURL *url = [NSURL URLWithString:urlString];
    if ([url.scheme length] == 0) {
      url = [NSURL URLWithString:[@"http://" stringByAppendingString:urlString]];
    }
    [myWebView loadRequest:[NSURLRequest requestWithURL:url]];

以上です。

[iOS] HTMLからiBooksで読めるEPUBを作ってみる

iOSデバイスにiBooksというすばらしいアプリが入っているわけですが、日本語の電子書籍がなかなか出てこないので、いまいち使いこなしている気がしないわけです。

今回は、コンテンツをPDF形式ではなくEPUB形式で作成して、iBooksで読むチャレンジをしてみます。EPUB形式ですので、本のようにページがめくれたり、フォントサイズの変更が可能です。

このところWEB制作ではJavaScript全盛のようですので、基礎から勉強し直したいと思っていたところ、M. Haverbeke著の『Eloquent JavaScript』がいいよと教えていただいたので、それを利用します(ライセンスはCC BY 3.0です)。


[iOS] iPhone 5の縦長ディスプレイへの対応

本日、iPhone 5や新しいiPod touchが発表され、アプリは従来の480×320又は960×640のディスプレイとは違った大きさの1136×640に対応しなければならなくなりました。

既存のアプリを新しい端末で表示すると、上下に黒い帯ができるようですので、できれば早めに対応したいですよね。

僕は基本的にInterface Builderを使って画面を設計していますので、iPadとのユニバーサルアプリの場合はxibファイルをiPhone/iPod touch用とiPad用の2つを作らなければなりませんでしたが、今回はいくつかの設定だけで対応することができました。

やったことは、
  1. Default-568h@2x.png というスプラッシュスクリーンを追加した(サイズは640×1136)
  2. MainWindow.xibの中のWindowのSizeを「Retina 4 Full Screen」にした
だけです。

画面にWebViewなどを設置していて、余白が気持ち悪いときには、そのオブジェクトのAutosizingを調整すれば良いですね。

とりあえず、iPhone 6.0 Simulator上では、問題なく動きました。

あとは、実機で確認...するために実機を買わなくちゃ!