SenchaTouch2を使用してWebアプリケーションを構築します。iPhoneでは、アプリケーションを全画面で使用できます。
私はすでにPCブラウザ用のWebアプリケーションを構築しており、OAuth2に接続するGoogleカレンダーAPIを使用しています。
承認手順では、ユーザーのgoogleアカウントにログインするために新しいウィンドウを開く必要があります。
たぶん私はPCの同じアーキテクチャを使用してSenchaTouchアプリケーションを構築できますが、新しいウィンドウを開くとフルスクリーンアプリケーションが閉じます。
SenchaTouch2アプリケーションでgoogleOAuth2を使用する方法を知っていますか?
-2013/2/6を追加
私のSenchaTouch2アプリケーションはWebアプリケーションです。ブラウザではなく、フルスクリーンのWebアプリケーションで許可を与えることができることを知りたいです。
-2013/2/7を追加
チップを使用します。 http://miketheindian.com/2012/02/22/staying-in-full-screen-mode-on-the-iphone-from-page-to-page/
この方法では、ブラウザを開く必要はありません。新しいウィンドウを開くよりはましですが、iframeで認証するのが一番です...
--2013/2/13を追加最後に、私は道を譲ります。
Google AOuthは、ユーザーにとって3つのパターンです。
1.ユーザーのグーグルアカウントはログアウトです。ユーザーはユーザーIDとパスワードを入力する必要があります。
2.ユーザーのグーグルアカウントはログインしていますが、アプリケーションは許可されていません。ユーザーは「許可」ボタンをクリックする必要があります。
3.ユーザーのグーグルアカウントはログインです、ユーザーは何もする必要はありません。
3.のとき、iframeで認証できます。また、1。または2.の場合、フレーム内での承認ができないため、location.href変更アプローチを使用してください(詳細はhttp://miketheindian.com/2012/02/22/staying-in-full-screenをご覧ください)。 -mode-on-the-iphone-from-page-to-page /)。
詳細
makeビューにはコンテナがあります{xtype:'container'、html:'<iframe src = "" id = "googleLogin" style = "border:0;">'}、
コントローラのsrcを変更します
var iframe = Ext.get(Ext.query('#googleLogin'));
iframe.set(
{
src: responseInformation.googleOAuthUrl
});
3.の時、ユーザーグーグルアカウントログイン、これは大丈夫です。
1.または2の時刻になると、location.hrefを変更します。iframeの「onerror」イベントを処理したいのですが、そのイベントはありません。
settimerを使用して、iframeのsrcが最初のsrcに変更されていないかどうかを確認します(Googleログインページへのリダイレクトエラーのため)。
3000ミリ秒はそれほど意味がありません。3.のとき、リダイレクトは成功し、ページが変更されました。
me.timerId = setInterval(function(){
if (iframe.el.dom.src.indexOf( /* first url */'') !== -1){
location.href = iframe.el.dom.src;
clearInterval(me.timerId);
}
}, 3000);