iPhone/iPadのホーム画面コンテスト開催中!賞品は iTunes カード!

Search ResultsFor "携帯電話"



iPhone/iPad & iScreenShot & service 2010/08/23 09:18

iPhone Safariから画像を投稿する方法

iPhone Safariから画像を投稿するならMMS連携が便利です。

iScreenShotのように、iPhone Safariから写真や画像を投稿してもらうWebサイトを作る時に悩むのが、どういう方法で画像をWeb側に投稿してもらうかです。

実際に構築するにあたって色々と試してみました。

Safariからファイルアップロード

Safariからファイルアップロードで画像を投稿して貰う方法です。

単純に考えればこれですね。開発を始める時は、スマートフォンだしPCと同じ方法で良いよね、と安易に考えていました。

しかし試してみると分かるのですが、iPhone/iPadのSafariでは残念ながらファイルアップロードはできません。

ファイル選択ボタンが無効になってます。。。

メールから送信

次に考えたのが、メール添付による投稿。

mailto:でメールアプリを起動して、画像を添付して貰えれば良いと考えていました。同じようにファイルアップロードができない携帯電話ではお馴染みの方法ですね。

これなら行けると試してみると、mailto:でメールアプリ起動までは問題無いのですが、なんとメールアプリでは画像添付ができません。

結局、メールを使うなら、写真アプリから画像を選択してメールを送る、という手順を取るしかありませんでした。

MMSから送信

そんなこんなやっているなか、普段あまり認識していなかったMMSアプリからなら直接画像を指定して送信できることが分かりました!

しかもMMSなら、mailto:でメールアプリを起動するように、sms:というURL Schemeを指定してSafariから1クリックでアプリを起動することができます。

参考:Apple URL Scheme Reference: Text Links

sms:の後にメールアドレスを指定すると、そのメールアドレスを送信先としてセットした状態になります。これもmailto:と同じですね。

CODE:
  1. <a href="sms:xxxxxxxx@iscot.in">MMSから送信</a>

SafariからMMSによる送信の流れは以下です。

まず、Safariからsms:が書かれたリンクをクリックします。

MMSアプリが起動します。sms:で指定したメールアドレスが送信先としてセットされています。

MMSでは画像選択が可能なので、左下のカメラアイコンで画像を選択できます。

画像を選択した状態です。あとは件名なり本文なりを書いて送れば画像を投稿することができます。

MMSからメールとして送信されたメッセージを処理する場合は、以下のエントリが参考になります。

=> iPhone MMSから送信されたメールを処理する際の注意点 | Shin x blog

見直したMMS

MMSを利用することにより、iPhone Safariの環境でもスムーズに画像投稿ができるようになりました。ファイルアップロードが出来るのが一番ですが、MMSを連携すれば携帯電話に慣れているユーザさんには自然な操作感かなと思っています。

写真投稿系など、iPhone Safariから画像アップロードを行うようなサービスを構築するなら、MMS連携を選択肢として知っておくと良いですよ。

MMSを使って画像を投稿してみたい方はiScreenShotからどうぞ:D
=> スクリーンショットを投稿する

雑記 2009/07/03 21:12

プロフィール

Shin x blogをご覧頂きありがとうございます。このblogでは、PHPやCakePHPやTwitterや勉強会などなど、日頃気になっていることや、調査した技術情報などを書いています。

管理人

新原 雅司(しんばら まさし)

[現住所] 兵庫県

[現職] 1x1株式会社 代表取締役

[連絡先] shin1x1 [at] gmail.com

興味のあるもの

  • Webのサービスやシステム
  • 携帯電話
  • プログラミング(PHPとか、CakePHPとか、諸々)
  • MotoGP
  • 梅酒
  • 阪神タイガース
  • 勉強会

好きな言葉

  • 枯れた技術の水平思考

執筆したもの

CakePHP1.2ガイドブック[毎日コミュニケーションズ] (共著)

CakePHPによる実践Webアプリケーション開発 [毎日コミュニケーションズ] (共著)

CakePHPガイドブック[毎日コミュニケーションズ] (共著)

メディア・雑誌掲載して頂いたもの

  • twitterコミュニケーション・バイブル [秀和システム](Twitter検索)
  • Yahoo! Internet Guide 2007/12月号 [SOFTBANK Creative](Twitter検索)
  • Biz.ID 「Twitterでゴールデンウィークのヒマをつぶす」 (Twitter検索、Twtterで暇つぶし)
  • Web API実践リファレンスブック [毎日コミュニケーションズ](Services_Rakuten)

イベントで発表したもの

雑記 2008/12/31 13:07

2008年ふりかえり

いよいよ2008年も今日一日を残すだけとなりました。

年々一年が早く感じますが、無事に年末を迎えることができました。皆さん本当に一年ありがとうございました。

では、今年一年の振り返りを。

blogエントリ

今年1年に書いたエントリで最もアクセスが多かったのはPHP 配列を回すならforかforeachかでした。はてブをそれほど集めたわけではないですが、コメントやTwitter等で反応が多かったのが印象に残っています。Goolgeで「php foreach」で検索すると4位(2008/12/31現在)に出てくるのがアクセスには寄与していると思います。

個人的にはCakePHPのアプリケーションの流れをシーケンス図で書いたエントリが一番気に入っています:-D

やっぱり勉強会

今年一年で印象に残っているのは勉強会ですね。特に10月のCakePHPカンファレンスから12月のPython関西勉強会までは、staff・司会や発表、主催等々で深く関わりました。

発表はやはり準備があるので、12月のように本業多忙+月2回発表は結構大変だったりもしたのですが、その準備が勉強会への予習にもなって、より勉強会を楽しむことができました。これは特にPython関西勉強会で感じました。

また昨年からも続けていることですが、参加した勉強会のレポートをblogで書くことができて良かったです。(まあ散々勉強会で人に書け書け言っているので、当然なのですが:-))

コードを書く以外の表現を学んだ一年

総じて見ると今年はコードを書く以外の表現方法を学んだ一年でした。仕事でもドキュメントを書く機会が以前より増えましたし、勉強会での発表資料作り、そして発表と色々な表現を模索しました。表現方法の幅が広がることにより思考の領域が広がり、より多角的に物事を見ることができるようになったと思います。これによりコードを書くのがより楽しくなりました。

すっかり勉強会での発表に味を占めてしまった:-Dので、来年もこの流れを継続したいですね。PHP関連はもちろんですが、他言語や他分野の勉強会にも参加したいです。特にWebデザイナやWebディレクタのようなWeb開発に関わる他職種の勉強会に参加して、できれば発表してみたいですね。

2009年もどうぞよろしくお願いします!

LifeHack & 雑記 2008/08/25 00:25

携帯電話を無くした時に知っておくこと au編

昨日、携帯電話を無くしました。。。

飛行機で出張から帰ってきたのですが、空港に着いて、空港バスに乗った時に携帯電話が無いことに気づきました。飛行機はチケットレスだったので、乗り込む直前に手元にあったのは間違い無い(携帯でQRコードを表示して、ゲートをくぐったので)のですが、そこからの行方が分かりません。

思い返してみると、普段飛行機を降りるとまず携帯の電源を付けるのですが、それをした記憶が無いですし、なぜかそっちに気が回ってませんでした*1

さて、ここから手続きやらをするわけのですが、結構知らないことが多かったので、メモしておきます。

手続き情報を確認する

まずはauでどういう手続きが取れるかを確認します。

手続きはtelでもWebでも可能なようです。今回はtelで手続きしました。

回線を停止する

拾われた携帯が悪用されないように回線を停止します。ただし後述する遠隔オートロックを利用する場合は、回線を停止する前にオートロックをかける必要があります。

手続きは固定電話から「0077-7-113」にtelにしました。自動応答になっていて、案内どおりに選択していくと、簡単に手続きできました。必要なのは、「携帯電話の電話番号」と「契約時の暗証番号」です。

また、回線を再開する際に必要となる4ケタの数字を入力する必要がありました。これは契約時の暗証番号とは別で、手続き中に入力します。この数字は再開時に必要となるので、忘れないようにしましょう。

遠隔オートロック

今回調べて初めて知ったのがこれ。

あらかじめ設定をしておくと、特定の電話番号から、決めた回数分、携帯電話に電話をかけると、アドレス帳等にロックがかけられるという機能です。「あらかじめ設定」とあるのですが、紛失してからでも設定できるようです。

回線自体は停止できても、アドレス帳など携帯の内容が見られてしまうのはどうしようもありません。(普段からオートロックをかけておけば良いですが。。。)この機能を使えば、遠隔でロックをかけられるというわけです。

ただしこの機能を使うには携帯電話自体が着信可能な状態である必要があります。つまり、上でも触れてますが、この機能を使うなら回線停止に行う必要があります。

今回は飛行機に乗った際に電源を切ったままで、固定電話から何度かけても、通じなかったので、使用しませんでした。。。

機種変更が可能

もし携帯が出てこなかった場合です。

コールセンターで聞いたのですが、最悪、携帯が出てこなくても機種変更という形で同じ番号の携帯を買い直すことはできるとのことでした。特に仕事で使っている等で番号を変えられない人には、これは助かりますね。

ただ、端末自体は買い直しになりますし、さらにフルサポートで購入していると別途費用が必要になるようです。

またこの場合、紛失したままの携帯電話のauICカードが悪用されるのでは?という懸念があったのですが、こちらは回線停止をしておけば、使用できないとのことです。つまり紛失携帯・新携帯で同時に同じ番号が使えるということは無いようですね。(まあ当然ですか)

自分は、シンプルプランで購入していたのですが、最悪、買い直せば番号は使えると分かり少し安心しました。。。

auICカード(UIM)のみ再発行?

上の機種変更は、ようはUIMを再発行して、新しい携帯に使うだけだと思うので、これが可能ならUIMの再発行だけもできるような気がします。

これが出来れば、手元にau端末さえあれば、元の番号で利用できるようになります。

実際のところ

バタバタしたのですが、結局↓のように動きました。

  1. 自分の携帯にtel => つながらず(以降合間を見て何度もかけるが、一度もつながらず)
  2. 飛行機を降りた空港・飛行機会社に落とし物の問い合わせ => ナシ
  3. au 手続き情報確認
  4. au 回線停止
  5. au 遠隔オートロックを知る => コールセンターで教えて貰うが、携帯が通じないと使えないとのこと。
  6. 搭乗した空港・飛行機会社へ落とし物問い合わせ => ナシ
  7. 飛行機を降りた空港・飛行機会社に行って、直接問い合わせ => あった!!!
  8. au ショップへ
  9. UIM再発行依頼 => できればそれを前の携帯に入れて使用
  10. 再発行がムリなら、機種変更で購入

で、7で見つかったので、それ以降は行動していませんが、見つからないことも想定していたので、空港に行く際は旧端末と判子を持っていってました:-D

携帯なくすと大変

無くしたと分かった時はかなり焦りました。。。

自分がいかに携帯に依存しているかをあらためて認識しました。普段使っている機能としては、電話やメール、Webなどありますが、その機能自体より、電話帳やアドレスなどの情報の喪失・流出が痛いと感じました。(もちろん端末自体もイタイですが。。。)

バックアップとロックをしっかり行っておかないとダメですね。

とにかく無事に見つかってホントに良かったです:-D

こうやって色々と対応は取れるので、一番大事なのは何より「落ち着く」ことですね。

*1 野球の3位決定戦が気になってました:-D

CakePHP & PHP 2008/04/10 22:42

CakePHP 1.2で携帯用ビューを表示する

CakePHP1.2ではCakePHP 携帯用ビューを表示するで利用していたwebservicesの機能が無くなります。

1.2-betaでRouting.webservicesをonにすると以下のようなメッセージが表示されます。

CODE:
  1. Deprecated: webservices routes are deprecated and will not be supported in future versions.  Use Router::parseExtensions() instead.

The prefix automagic in CakePHP routingで紹介されているように、1.2からはwebservicesに替わりprefixをURLルーティングで使用するようです。

そこで実際にどのように使用するかを試してみました。

1. URLルーティングでprefixを設定する

Router::connect()の第2引数ではパラメータを連想配列で設定できるのですが、そこに'prefix'というキーで値を設定しておくと、対象URLにアクセスがあればこの機能が有効となります。

下記の例では[/m/foo/bar]へアクセスがあると、prefix=mobileが有効となります。

[app/config/routes.php]

PHP:
  1. Router::connect('/m/:controller/:action', array('prefix' => 'mobile'))

2. prefix用アクションを作成する

prefixが有効な状態だと、アクションとして[prefix + _ + action]が呼ばれるので、アクションを実装します。

1. の設定で[/m/foo/bar]へアクセスされると、prefix='mobile'が有効となるので、FooController#mobile_bar()がアクションとして呼ばれます。

[app/controllers/foo_controller.php]

PHP:
  1. <?php
  2. class FooController extends AppController {
  3.   public function mobile_bar() {
  4.     // 通常のアクションを実装
  5.   }
  6. }
  7. ?>

3. prefix用ビューを作成する

2.で実装したアクション同様にビューテンプレートを作成します。

これは通常どおり2.で作成したアクションに対応するビューテンプレートを作成するだけです。

注意点は$html->link()などでURLを指定する際は、アクションにprefixが付いたアクション(mobile_bar)を指定するという事です。下の例なら「/m/foo/bar」がURLとして出力されます。

[app/views/foo/mobile_bar.ctp]

PHP:
  1. <?php echo $html->link('link', array('controller' => 'foo', 'action' => 'mobile_bar')); ?>

△prefix用Component/Helperが読まれない

携帯電話では入出力文字エンコーディングを変換する事が多いのですが、webservicesを使用すると読み込まれるComponent/Helperで実装していました。

今のところprefixではこの機能が無いようなので、Controller#beforeFilter()/afterFilter()等で自前で実装する必要がありそうです。

そのリクエストで設定されているprefixはController#$params['prefix']で確認できます。(@see 1.2 の WEBSERVICES パラメータ)

○prefix用アクションは直接呼ばれない

prefixに設定したアクションは直接呼ぶことができず、prefixで設定したURLでないとアクセスできません。

つまり1.のような設定の場合、[/foo/mobile_bar]へアクセスしてもprivate methodとして扱われてエラーとなります。

これによりprefixが設定されず、prefixアクション(mobile_bar)が呼ばれるのを防ぎます。

このあたりの挙動はRouting.adminと同じですね。:-D

webservicesは中々便利な機能だったので無くなるのは残念ですが、代替機能があるのは嬉しいことです。

Webサービス & twitter 2007/09/13 19:39

人気のTwitterクライアントは?

いつからかTwitterのfeedに投稿元を示す[source]が含まれるようになりました。(情報ありがとうございました。>@fjkktkysさん)

そこで投稿数からTwitterクライアントのランキングを出してみました。

集計期間は[9/10 00:00:00 ~23:59:59]、対象はprotectをかけていない投稿(public_timelineに表示される投稿)です。

Twitterクライアントランキング [日本ユーザ]

まず日本ユーザでのランキングです。

1位はWindows用クライアントのTwitです。私も使っていますが、必要十分な機能が上手くまとまっており良いツールです。2位はim、3位はMac用ツールのtwitterrificとなっています。Mac用ツールでは5位にTwitterPodが入っており、Macでの専用クライアントでは人気を二分しているようです

なお[web]はランキングに含めてませんが、投稿数はダントツのトップです(全クライアントの投稿数を合計してさらにN倍)。ただこの数にはモバツイやtwitterMobileのように[source]に対応していないものも含まれているので、純粋なtwitter.comからの投稿はもっと少ないと思われます。

モバツイやtwitterMobileはユーザ数も多いでしょうから、どのあたりにランクインするか見てみたいですね。(是非ご対応を;-))

rank client entries
1 Twit 4913
2 im 1879
3 twitterrific 1737
4 TwitterFox 1484
5 TwitterPod 736
6 TwitterIrcGateway 438
7 Twippera 149
8 tmitter 145
9 foxytunes 141
10 Twitter Line 105
11 tokotto 94
12 TwitBin 87
13 Chirrup 82
14 TwitKu 81
15 Netvibes 62
16 twitte.rb 23
17 txt 18
18 Twitter Tools 17
19 Tweetr 16
20 Twitter4J 16
21 m2m 14
22 TwitterMail 12
23 Twitter4R 9
24 GtkTwitter 8
25 Facebook 7
26 twigadge 6
27 fring 5
28 Twitter Opera widget 2
28 Twimp 2
28 bookey 2
28 PocketTweets 2
29 Snitter 1

Twitterクライアントランキング [全体]

次は全体のランキングです。

まず目に付くのがクライアント数の多さです。日本ユーザでは32だったクライアント数は65となっています。中には掘り出し物のツールかも。

1位はtwitterrificで、2位に続く[im]と2つで投稿数の約半数を占めています。あと特徴的なのが3位の[txt](twitter.comが提供するモバイル版)です。日本では携帯電話からの投稿はモバツイやtwitterMobileなどツールを使用することが多く、[txt]はほとんど利用されていないようです(日本では17位)。

なお[web]については日本ランキングと同じくランキングには含めていませんが、こちらも圧倒的に1位となっています。

rank client entries
1 twitterrific 11651
2 im 9272
3 txt 6916
4 Twit 4932
5 TwitterFox 2465
6 TwitBin 1624
7 Tweetr 1255
8 Netvibes 918
9 yedda 876
10 TwitterPod 784
11 Facebook 645
12 Twitter Tools 531
13 PocketTweets 450
14 TwitterIrcGateway 449
15 foxytunes 354
16 TwitKu 243
17 Twippera 182
18 iTweet 173
19 tmitter 145
20 InnerTwitter 118
21 Snitter 115
22 TwitterMSN 111
23 Twitter Line 105
24 CTwitter 96
25 Twadget 95
26 tokotto 94
27 TwitterMail 86
28 Spaz 85
29 Chirrup 83
30 the ORG 74
31 TTYtter 56
32 Twitter Opera widget 40
33 fring 38
34 Numpa 32
35 twibble 29
36 twitte.rb 24
37 ThinCloud 21
38 brabblr 20
39 TinyTwitter 17
40 Twitter4J 16
41 Twitter4R 15
42 m2m 14
43 Hahlo 11
43 Mobypicture 11
44 blt 10
44 Pwytter 10
44 cellity 10
44 mobile with WidSets 10
45 GtkTwitter 8
45 TwitterGram 8
46 SKTwitter 6
46 twigadge 6
47 30 Boxes 5
48 twitterAIR 4
48 BlogRovr 4
49 哀Twitter 3
50 Whirrl 2
50 twit.el 2
50 mobile with WidSets China 2
50 Twimp 2
50 Auto Tweet 2
50 bookey 2
51 1stat.us 1
51 blogTV.com 1
51 Whisher 1

日本ユーザが1/3

このランキングを作成するのに投稿数を集計したのですが、日本ユーザの投稿数が全体の1/3となっていました。

他の言語・地域については個別に集計していないので分かりませんが、日本ユーザが大きな勢力となっているのは間違い無いと思います。