- ベストアンサー
特定URLをAndroid標準ブラウザで開く
Titanium MobileにてAndroidアプリ開発を行っていますが、 あるURLをAndroid標準ブラウザを指定して開く挙動を行いたいのですが、 どのようにしたら良いでしょうか?
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
- ベストアンサー
うーん、動きませんか。コードとしては、おそらく問題ないはずですね……。TitaniumのサイトのFAQに投稿されたものなどを見ても、間違いはないと思います。ですので、Xperia側の問題か、あるいはそもそもTitaniumに問題があるのか、ということだろうと思うのです。 可能であれば、Titaniumではなく、Googleの純正開発環境(Javaベースということ)でIntentを使った処理を動かしてみて、それで動作確認をできればいいのですが……。それで動けば、Titanium側の実装の問題だと思いますし、動かなければXperia固有の問題でしょう。
その他の回答 (2)
うーん、これでできますか? 試してないのですが……。 var intent = Ti.Android.createIntent({ action: Ti.Android.ACTION_VIEW, data: 'http://www.google.com', className: 'com.android.browser.BrowserActivity', packageName: 'com.android.browser' }); Ti.Android.currentActivity.startActivity(intent);
お礼
回答ありがとうございます。お返事遅くなってしまい申し訳ありません。 早速試してみましたが、やはりダメでした。 挙動は前と変わらず、標準ブラウザが開いたと思ったらデフォルト起動のブラウザに切り替わってしまいました。 ちなみにデフォルト起動はドルフィンブラウザです。 実現したいのはdocomoのdMenuのような挙動でしたので、試しにXperiaでこの状態でdMenuをタップしてみたところ、やはりデフォルト起動のブラウザが開いてしまいました。 ただ、GalaxySIIIではdMenuをタップするとデフォルト起動がクロムになっていても標準ブラウザで立ち上がります。 ちなみにGalaxyにドルフィンブラウザをデフォルトにしてもdMenuは標準ブラウザで立ち上がりました。 このように、同じアプリでも挙動が違ってしまっていたので、 後程、試しに今回作ったテストアプリをGalaxyに入れて試してみたいと思います。 これが上手くいくとすると、機種依存になってしまうんでしょうか。 機種依存を回避するようなコードにしないといけないんですかね。
インテントを使います。こんな感じ。 var intent = Ti.Android.createIntent({ action: Ti.Android.ACTION_VIEW, url: 'http://www.google.com' }); Ti.Android.currentActivity.startActivity(intent); このへんは、プログラミングのカテゴリのほうが回答がつきやすいと思いますよ。
お礼
回答ありがとうございます!次回からはカテゴリをそちらで質問したいと思います。 早速ですが、参考にさせていただき以下のコードにしてみました。 var intent = Ti.Android.createIntent({ action: Ti.Android.ACTION_VIEW, data:'http://www.google.com', className: 'com.android.browser.BrowserActivity', packageName: 'com.android.browser' }); これで一応ブラウザが起動して対象のURLが表示されましたが、複数のブラウザがインストールされている環境では、アプリの選択画面が出て、標準以外のブラウザをそこでデフォルト指定してしまうと、一瞬標準ブラウザが開いてその後デフォルト指定のブラウザに切り替わってしまいます。 これをさせない方法はありますでしょうか?
お礼
分かりました、駄目だったらネイティブで試すことも考えます。 色々ありがとうございました!大変助かりました!