TitaniumのWebViewで変数を渡す
http://psychedesire.blogspot.com/2011/12/titanium-webview.html
この記事の中で、
var obj = {hoge:"hugahuga"};
var win = Ti.UI.createWindow();
var web = Ti.UI.createWebView({url:"hoge.html"});
win.add(web);
win.addEventListener("open",function(e){
web.evalJS("func(" + JSON.stringify(obj) + ")");
});
こうやって書けば、WebView:web に変数を渡せると書いたけど、
これだと、問題が発生することがわかった。
どんな問題かというと、WebView 内で jQuery とかを読み出していた時に、
jQuery のロードを待たずに変数の代入や関数の実行が行われるのだ。
というわけで、こういう場合は、
var obj = {hoge:"hugahuga"};
var win = Ti.UI.createWindow();
var web = Ti.UI.createWebView({url:"hoge.html"});
win.add(web);
web.addEventListener("load",function(e){
web.evalJS("func(" + JSON.stringify(obj) + ")");
});
このように書けば、WebView:web のロードを待って、
ロードが終わった後に、evalJS が実行される。
0 件のコメント:
コメントを投稿