1

Sencha Touch 2.0.0.RCを使用してモバイルWebアプリケーションを開発していますが、私の問題はこのフレームワークに関連しているとは思われません。ここで更新後にのみアクセスできるlocalStorage

は、ワークフローです:トークンはローカルストレージに存在する場合、起動時に

app.jsがロードされ、チェックです:

launch: function() { 
    if (localStorage.getItem('myToken')) { 
     Ext.create('MyApp.view.Viewport'); 
    } 
    else{ 
     Ext.create('MyApp.view.Login'); 
    } 
} 

私が初めてアプリケーションをロードするので、トークンが見つからないため、ログインビューが作成されます。 login.jsで

コントローラ、関数はフォームの値を取得し、残りのAPIにAJAX要求を送信しsubmitLoginForm:

submitLoginForm: function() { 
    var formValues = this.getLoginForm().getValues(); 

    Ext.Ajax.request({ 
     scope: this, 
     url: 'http://mydomain.com/api/login/token', 
     method: 'POST', 
     params: formValues, 
     success: function (response) { 
      var result = Ext.JSON.decode(response.responseText); 
      if (result.success) { 
       localStorage.setItem('myToken', result.token); 
       var viewport = Ext.create('MyApp.view.Viewport'); 
       this.getLoginForm().setHidden(true); 
       viewport.show(); 
      } 
      else{ 
       Ext.Msg.alert('Error', 'Bad username or password'); 
      } 
     }, 
     failure: function() { 
      // 
     } 
    }); 
} 

ユーザ名とパスワードが正しい場合は、トークンが返されたI localStorageに格納します。 URLは次のようになりますその瞬間

store: { 
    //... 
    proxy: { 
     //... 
     url: 'http://mydomain.com/api/controller/function/?token=' + localStorage.getItem('myToken') 
    } 
} 

:その後 、私はAPIにアクセスするためにトークンを利用している(viewport.js)を作成し、別のビューを表示

http://mydomain.com/api/controller/function/?token=null&... 

しかし、私は私のブラウザを更新すると、すべてがうまくされ、トークンが帰ってきた:

http://mydomain.com/api/controller/function/?token=tokenValue&... 

私も完全に私の閲覧を閉じることができますrを再度開いて、ログインを要求されずにアプリケーション全体にアクセスします。

+0

S.O.また、[ST2.X Forum](http://www.sencha.com/forum/forumdisplay.php?90-Sencha-Touch-2.x-Q-amp-A)に投稿してみてください。司祭(彼は司会者)の多くを知っていて、通常は速く答える「ミチェルシモンス(mitchellsimoens)」という男がいます。 – RaphaelDDL

+0

ええ、私はその男を知っている、彼は非常にアクティブです。私はそのフォーラムに私の質問を掲載しました。私はSencha Touchとは何の関係もないので(私の意見では)、私はここで運が良かったと思っていました。 –

答えて

0

組み込みのlocalstorageプロキシを使用できませんでしたか?

http://docs.sencha.com/touch/2-0/#!/api/Ext.data.Store-cfg-proxy

を参照してくださいそして、ちょうどこのようにプロキシを設定します。

proxy: { 
    id: 'myproxy', 
    type: 'localstorage' 
} 

その後のデータのためのあなたの店に照会します。

+1

このプロキシを使用する理由は何行かのコードと、一行がジョブを実行するときに一意のフィールドを持つモデル定義を持つ追加のファイルを意味するのでしょうか? –

1

問題は私のSencha Touchの誤解に関連していました。私は説明したすべての前に呼び出されているconfig内のストアを作成していました。 mitchellsimoensは確かに正しい人でした。彼は速やかに答えてくれました。私は自分の見解の設定で自分の店を作っていることを自分で理解していました... http://www.sencha.com/forum/showthread.php?185690-localStorage-accessible-only-after-refresh

+0

彼はya = Dを助けることができてうれしい – RaphaelDDL

関連する問題