What to be careful about the WebView widget.
先日、ActivityにWebViewを配置したアプリケーションを作っていたら妙な挙動に気付きました。
ActivityにボタンとYahoo! JapanのWebページを表示するだけの動作を期待して作ったアプリのソースです。
Activity(Main.java)
レイアウト(activity_main.xml)
マニフェスト(AndroidManifest.xml)
しかし、起動してみるとWebページはActivityに表示されず、ブラウザーが起動してしまいます。
※Yahoo!を表示させるアプリを作っていたわけではないのですが、動作テスト中に偶然発見しました。
原因は、http://yahoo.co.jp をAndroid端末で開くと http://m.yahoo.co.jp/ にリダイレクトされるためでした。
URLのリダイレクトはYahoo!の仕様です。
そして、リダイレクト先のWebページ開くためにブラウザーを起動するのはAndroidの仕様です。
あらかじめリダイレクト先のURLを表示するようにソースを修正したら期待通りになりました。
修正後のActivity(Main.java)
WebViewウィジットで使用するWebコンテンツを作るときはページの遷移方法は注意深く設定しなければいけないようです。
※Googleで検索したらWebViewのサブクラスを作ってブラウザーを起動させない方法を紹介している方もいらっしゃいました。
関連ブログ
[Android] Webコンテンツを強制的に表示するには
以上、参考になれば幸いです。
2012年7月21日土曜日
2011年2月12日土曜日
[Android] 画面の回転に反応するウィジットアプリケーションを作るには #2
How to Handle Orientation Changes in AppWidgets #2
画面の回転に反応するウィジットアプリケーションを作るにはではブロードキャストレシーバーかサービスが必要でした。
この他にAppWidgetProviderクラスのonReceiveメソッドとマニフェストによる方法でも可能です。
マニフェスト(AndroidManifest.xml)
intent-filterに
<action android:name="android.intent.action.CONFIGURATION_CHANGED"/>
を追加する。
レイアウト(res/layout/app_widget.xml)
appwidget-provider設定ファイル(res/xml/app_widget.xml.xml)
(resフォルダー配下に手動でxmlフォルダーを作ります)
ソース(AppWidget.java)
試行錯誤して遠回りしてしまいましたがAppWidgetProviderクラスだけで回転に反応できるこの方法がベストだと思います。
マニフェストの<intent-filter><action android:name="・・・・・"></intent-filter>を増やせば他のブロードキャストも受け取れるようです。
キーワード
AppWidgetProvider intent-filter onReceive Intent.ACTION_CONFIGURATION_CHANGED
以上、参考になれば幸いです。
画面に天気予報を常駐させるウィジットアプリ「お天気ロイド」
画面回転にも対応する「Eye元気!」
どちらも公開中です
画面の回転に反応するウィジットアプリケーションを作るにはではブロードキャストレシーバーかサービスが必要でした。
この他にAppWidgetProviderクラスのonReceiveメソッドとマニフェストによる方法でも可能です。
マニフェスト(AndroidManifest.xml)
intent-filterに
<action android:name="android.intent.action.CONFIGURATION_CHANGED"/>
を追加する。
レイアウト(res/layout/app_widget.xml)
appwidget-provider設定ファイル(res/xml/app_widget.xml.xml)
(resフォルダー配下に手動でxmlフォルダーを作ります)
ソース(AppWidget.java)
試行錯誤して遠回りしてしまいましたがAppWidgetProviderクラスだけで回転に反応できるこの方法がベストだと思います。
マニフェストの<intent-filter><action android:name="・・・・・"></intent-filter>を増やせば他のブロードキャストも受け取れるようです。
キーワード
AppWidgetProvider intent-filter onReceive Intent.ACTION_CONFIGURATION_CHANGED
以上、参考になれば幸いです。
画面に天気予報を常駐させるウィジットアプリ「お天気ロイド」
画面回転にも対応する「Eye元気!」
どちらも公開中です
2011年1月22日土曜日
[Android] 画面の回転に反応するウィジットアプリケーションを作るには
How to Handle Orientation Changes in AppWidgets
ウィジットアプリケーションはホーム画面に常駐するアプリケーションです。
Activityと比べると様々な制約があります。
そのうちの一つに、Activityに実装されている画面を回転させるたびに呼ばれるメソッド(onConfigurationChanged)を備えていません。
ただし工夫次第で回転に反応させることはできます。
画面の回転に対応する前のソースです。
マニフェスト(AndroidManifest.xml)
レイアウト(res/layout/app_widget.xml)
appwidget-provider設定ファイル(res/xml/app_widget.xml.xml)
(resフォルダー配下に手動でxmlフォルダーを作ります)
ソース(AppWidget.java)
画面を回転するたびに、このウィジットアプリケーションの「TextView01」の表示内容を変化させます。2つの方法をあげてみます。
1.ブロードキャストレシーバーを使う
2.サービスを使う
1.ブロードキャストレシーバーを使う
この方法はAppWidget.javaのみを改造します。
これで回転するたびに表示内容を変えることができました。
2.サービスを使う
ServiceクラスはonConfigurationChangedメソッドを持っているので、Activityと同じように画面の回転に対応できます。
この方法はAppWidget.javaの改造ととマニフェストの追記が必要です。
マニフェスト(AndroidManifest.xml)
AppWidget.java
この改造も同じように回転するたびに表示内容が変わります。
キーワード
AppWidgetProvider onConfigurationChanged AppWidgetProvider onConfigurationChanged Intent.ACTION_CONFIGURATION_CHANGED
以上、参考になれば幸いです。
画面に天気予報を常駐させるウィジットアプリ「お天気ロイド」
画面回転にも対応する「Eye元気!」
どちらも公開中です
ウィジットアプリケーションはホーム画面に常駐するアプリケーションです。
Activityと比べると様々な制約があります。
そのうちの一つに、Activityに実装されている画面を回転させるたびに呼ばれるメソッド(onConfigurationChanged)を備えていません。
ただし工夫次第で回転に反応させることはできます。
画面の回転に対応する前のソースです。
マニフェスト(AndroidManifest.xml)
レイアウト(res/layout/app_widget.xml)
appwidget-provider設定ファイル(res/xml/app_widget.xml.xml)
(resフォルダー配下に手動でxmlフォルダーを作ります)
ソース(AppWidget.java)
画面を回転するたびに、このウィジットアプリケーションの「TextView01」の表示内容を変化させます。2つの方法をあげてみます。
1.ブロードキャストレシーバーを使う
2.サービスを使う
1.ブロードキャストレシーバーを使う
この方法はAppWidget.javaのみを改造します。
これで回転するたびに表示内容を変えることができました。
2.サービスを使う
ServiceクラスはonConfigurationChangedメソッドを持っているので、Activityと同じように画面の回転に対応できます。
この方法はAppWidget.javaの改造ととマニフェストの追記が必要です。
マニフェスト(AndroidManifest.xml)
AppWidget.java
この改造も同じように回転するたびに表示内容が変わります。
キーワード
AppWidgetProvider onConfigurationChanged AppWidgetProvider onConfigurationChanged Intent.ACTION_CONFIGURATION_CHANGED
以上、参考になれば幸いです。
画面に天気予報を常駐させるウィジットアプリ「お天気ロイド」
画面回転にも対応する「Eye元気!」
どちらも公開中です
登録:
投稿 (Atom)



