.ログイン
ユーザ名:

パスワード:


パスワード紛失

新規登録

.検索

.メインメニュー

.フォーラムメニュー

.オンライン状況
28 人のユーザが現在オンラインです。 (28 人のユーザが フォーラム を参照しています。)

登録ユーザ: 0
ゲスト: 28

もっと...

.
.リンク集

メイン
   CakePHP コントローラ(Controller)
     PC/mobileの表示分け
投稿するにはまず登録を

スレッド表示 | 新しいものから 前のトピック | 次のトピック | 下へ
投稿者 スレッド
gunny
投稿日時: 2010-2-3 23:35
Baker ユーザ
登録日: 2007-3-4
居住地:
投稿: 28
PC/mobileの表示分け
既出かもしれませんがなかなか見つけられなかったので。
PC/Mobile対応のアプリを作ろうと思っているのですが何か常道的な方法がありますでしょうか?

<?php
RequestHandler
::isMoble()
?>


で判別できるかと思うのですが、viewの配置方法、コントローラ内で携帯のみ追加処理、文字コードの変換など、ほぼ定常的な処理になるかと思うのですが、何か常道的なやり方がありましたらご教示いただけませんでしょうか。よろしくお願いいたします。
MASA-P
投稿日時: 2010-2-3 23:49
Cake 職人
登録日: 2008-1-24
居住地:
投稿: 224
Re: PC/mobileの表示分け
RequestHandler::isMobileは日本の携帯の判別ですと十分ではありませんので、是非Ktai Libraryをお使いください!

▼ECWorks : Ktai Library for CakePHP1.2
http://blog.ecworks.jp/ktai
gunny
投稿日時: 2010-2-4 10:46
Baker ユーザ
登録日: 2007-3-4
居住地:
投稿: 28
Re: PC/mobileの表示分け
MASA-Pさん
ご指摘ありがとうございました。MASA-Pさんのライブラリは昨日拝見していて、使わせていただきたいと思っていました。文字コードの変換、絵文字の処理などもとてもありがたい機能と思っていますが、例えば、コントローラのアクションはPC/モバイル共通で、モバイルからのアクセスの際はモバイル用のビューを使用する、などの処理は何かやり方があるのでしょうか?

<?php
function beforeFilter(){
  if(
$this->Ktai->isMobile()) $this->viewPath 'mb_post';
}
?>


見たいにするのかな?、と思っているのですが見当違いでしょうか?
基本的な機能はPC/モバイル共通にするつもりで、URLも共通にしたいと思っています。
一部のアクションでモバイルの場合のみアドオンの処理を追加する、などをして、後はビューの切り替えだけで対応できないかと思っています。
ご教示いただけるとありがたいです。
MASA-P
投稿日時: 2010-2-4 15:34
Cake 職人
登録日: 2008-1-24
居住地:
投稿: 224
Re: PC/mobileの表示分け
ビューpathを切り替える方法で問題ないと思います。

一般的には、prefixルーティング機能で、携帯用のルーティングを作る手法をとられるようですが、これではURLが変わってしまうので。
PC用と携帯用の画面の遷移が全く同じでしたら、単純にビューの振り分けでいけると思います。

もしくは、route.php内でlib3gkのインスタンスを作り、携帯用のルーティングを指定するのもアリです。例えば、PC用をhoge_controller、携帯用をmobile_hoge_controllerとして用意し、if文で$ktai->is_ktai()の結果を判定してRouter::connect()を呼び分ける感じで実装すれば、controller内の処理も別にすることができます。
gunny
投稿日時: 2010-2-4 20:48
Baker ユーザ
登録日: 2007-3-4
居住地:
投稿: 28
Re: PC/mobileの表示分け
> もしくは、route.php内でlib3gkのインスタンスを作り、携帯用のルーティングを指定するのもアリです。
なるほど、そういうやり方もありますね。とても参考になりました。
ところでちょっとはずれますが、ktaiLibraryを早速ためさせていただいているのですが、vodafoneのウェブコンテンツビューアを使用したときに、$this->Ktai->is_ktai(); がfalseになっているようです。imode simulator, Openwave SDK では問題ないのですが。エミュレータのUAの問題でしょうか。ご教示いただけると助かります。
MASA-P
投稿日時: 2010-2-5 3:00
Cake 職人
登録日: 2008-1-24
居住地:
投稿: 224
Re: PC/mobileの表示分け
引用:

vodafoneのウェブコンテンツビューアを使用したときに、$this->Ktai->is_ktai(); がfalseになっているようです。imode simulator, Openwave SDK では問題ないのですが。エミュレータのUAの問題でしょうか。ご教示いただけると助かります。

はい。
UserAgentを見ますと「Vemulator/1.0/〜」となっていて実機と違うため、認識できません。
Firefoxをお使いでしたら、FireMobileSimulatorでチェックが出来ます。

近々携帯新機種のデータを登録しなければならないと思っていたため、次のバージョンで一緒にウェブコンテンツビュアーのデータも入れておきます。
gunny
投稿日時: 2010-2-5 20:00
Baker ユーザ
登録日: 2007-3-4
居住地:
投稿: 28
Re: PC/mobileの表示分け
なるほど、やはりUAの問題なのですね。重ね重ねありがとうございます。
スレッド表示 | 新しいものから 前のトピック | 次のトピック | トップ

投稿するにはまず登録を
 


. .