WebViewはwebページ表示するために使うものと思ってたけど、htmlの文字列を渡して表示もできるってことに気づいた。htmlの方が慣れてるし、けっこう便利!ちょっとハマった点メモ。
2011年6月23日木曜日
2011年6月17日金曜日
jQueryでAjax
「DroidgapでWebアプリをAndroidアプリに変換してみる 」で書いたJavascriptがjQueryらしくなかったので書き直す。jQuery.ajax()を使えば非同期HTTPリクエストを行えたんね。ajax使うように書き直すと、こんな感じ。
function a() {
var appid = '<ヤフーアプリケーションID>';
var query = $("#query").val();
$.ajax({
dataType: "jsonp",
data: {
"appid": appid,
"query": query
},
url: "http://auctions.yahooapis.jp/AuctionWebService/V2/json/search",
success: function (data) {
$("#result_list li:gt(0)").remove();
if (data.ResultSet["@attributes"].totalResultsReturned > 0) {
$.each(data.ResultSet.Result.Item, function(i,item){
var row = $("#result_template").clone();
row.removeAttr("style");
row.appendTo("#result_list");
row.find("#image").attr("src", item.Image);
row.find("#link").attr("href", item.AuctionItemUrl);
row.find("#title").text(item.Title);
row.find("#price").text(parseInt(item.CurrentPrice) + "円");
});
}
}
});
}
前回のでは、自分でqueryをencodeURIしてやってたけど、ajaxのdataでは不要。dataにcallbackは不要でsuccessに処理を記述する。jQueryでcallbackパラメータ付けてくれてリクエストしている模様。
2011年6月14日火曜日
2011年6月12日日曜日
DroidgapでWebアプリをAndroidアプリに変換してみる
PhoneGapはHTML+CSS+JavaScriptでAndroidやiPhoneなどのアプリケーションを開発できるフレームワークで、DrodiGapってのはPhoneGapでの開発に必要なファイルを生成してくれるテンプレート生成ツール。
DrodiGapではWebアプリをAndroidアプリに変換もできるようなので、ちょっと試してみる。
参考:5分で作るAndroidアプリケーション
DrodiGapではWebアプリをAndroidアプリに変換もできるようなので、ちょっと試してみる。
参考:5分で作るAndroidアプリケーション
2011年6月7日火曜日
Android WebViewメモ
WebViewについてのメモ。
WebViewClientで他にもいろいろできそう。onPageStartedとかonPageFinishedなどある。
上の例はonLoadResourceじゃなくてonPageStartedのがいいのかな。呼ばれる順番は下記のとおり。
以上、とりあえずメモ。
※追記
リダイレクト時(a.php→a.html)の挙動。
・戻るボタン押されたときに、前のページに戻す
ActivityのonKeyDownのオーバライドする @Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
if (event.getAction() == KeyEvent.ACTION_DOWN
&& keyCode == KeyEvent.KEYCODE_BACK
&& webview.canGoBack() == true) {
webview.goBack();
return true;
}
return super.onKeyDown(keyCode, event);
}
・ロードするURLに応じて処理をさせる
WebViewClientを継承してonLoadResourceに処理実装する。それをWebViewにセット。 webview.setWebViewClient(new MyWebViewClient());
・・・
public class MyWebViewClient extends WebViewClient {
@Override
public void onLoadResource(WebView view, String url) {
if(!url.startsWith("http://example.com")) {
Toast.makeText(getApplicationContext(), "外部サイトす。" , Toast.LENGTH_SHORT).show();
}
}
}
example.com以外のサイトでは外部サイトとToast表示させる。例としては微妙だけど。。WebViewClientで他にもいろいろできそう。onPageStartedとかonPageFinishedなどある。
上の例はonLoadResourceじゃなくてonPageStartedのがいいのかな。呼ばれる順番は下記のとおり。
05:37:39.808: DEBUG/MyWebViewClient(977): onPageStarted
05:37:39.888: DEBUG/MyWebViewClient(977): onLoadResource
05:37:40.938: DEBUG/MyWebViewClient(977): onPageFinished
以上、とりあえずメモ。
※追記
リダイレクト時(a.php→a.html)の挙動。
06:24:27.138: DEBUG/MyWebViewClient(1108): onPageStarted a.php
06:24:27.184: DEBUG/MyWebViewClient(1108): onLoadResource a.php
06:24:27.257: DEBUG/MyWebViewClient(1108): onPageStarted a.html
06:24:27.397: DEBUG/MyWebViewClient(1108): onPageFinished a.html
リダイレクト元URLのonPageFinishedは呼ばれず、リダイレクト先URLではonLoadResourceは呼ばれない。
2011年6月3日金曜日
Ubuntu ネットにつながらなくなるし
突然だった。昨日までは普通にネット見れてたのに。
突然なんてことはなく、何かやらかしたんだろうけれど、思い当たる節がない。
とりあえず調べてみよう。
どうも、resolv.confがおかしくなったよう。
DNSサーバの設定が保存されないを参考に。
resolv.confを修正して、/etc/dhcp3/dhclient.confのrequestセクションからdomain-name-serversを抜いてみる。
再起動時に戻ってしまったので、/etc/dhcp3/dhclient.confは元に戻す。きっと何かを間違えてるのだろう。
/etc/network/interfacesに固定IPにするように設定を追記。
これでつながり、再起動後も問題無し。
でも、昨日アップデートとかも何もしてないし、どうしてこうなった?
突然なんてことはなく、何かやらかしたんだろうけれど、思い当たる節がない。
とりあえず調べてみよう。
どうも、resolv.confがおかしくなったよう。
DNSサーバの設定が保存されないを参考に。
resolv.confを修正して、/etc/dhcp3/dhclient.confのrequestセクションからdomain-name-serversを抜いてみる。
再起動時に戻ってしまったので、/etc/dhcp3/dhclient.confは元に戻す。きっと何かを間違えてるのだろう。
/etc/network/interfacesに固定IPにするように設定を追記。
auto eth0
iface eth0 inet static
address 固定IP
netmask 255.255.255.0
gateway ゲートウェイ(ルータ)IP
これでつながり、再起動後も問題無し。
でも、昨日アップデートとかも何もしてないし、どうしてこうなった?
2011年6月2日木曜日
Android 進捗表示の方法あれこれ
今までタスクの進捗を表示するときProgressDialogで"くるくるまわってる"やつを一択で使ってたけど、他にもタイトルバー上に表示したり、進捗率を表示させたりと色々あるようなので簡単にメモ。
登録:
投稿 (Atom)