ブラウザにPOSTデータを渡して起動させる方法

7,477 views
Skip to first unread message

tmmr kz

unread,
Jun 21, 2011, 3:03:11 AM6/21/11
to 日本アンドロイドの会
いつも参考にさせていただいてます。

ブラウザにPOSTパラメータを渡して起動させたいのですが、可能なのでしょうか。

GETでのケースは色々な箇所で紹介されているのですが。
 Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse("目的のURL"));
 startActivity(intent);

恐れ入りますが、ご教授いただけると幸いです。

遠藤滋

unread,
Jun 21, 2011, 4:06:55 AM6/21/11
to android-g...@googlegroups.com
遠藤と申します。

以前同じような処理が必要で困っていたので参考になれば。

私の場合は、WebViewを利用していたので
postUrlで目的のURLにPOSTパラメータをセットしてWebViewを表示させました。

見当違いの回答でしたらすいません。。。


2011年6月21日16:03 tmmr kz<kz....@gmail.com>:
--
このメールは Google グループのグループ「日本Androidの会」の登録者に送られています。
このグループに投稿するには、android-g...@googlegroups.com にメールを送信してください。
このグループから退会するには、android-group-j...@googlegroups.com にメールを送信してください。
詳細については、http://groups.google.com/group/android-group-japan?hl=ja からこのグループにアクセスしてください。

tmmr kz

unread,
Jun 21, 2011, 4:31:41 AM6/21/11
to android-g...@googlegroups.com
遠藤様

早速の返信、ありがとうございます!

確かにWebViewを利用すれば、POSTパラメータを渡すことは可能ですね。

ただ今回の場合は、あくまで「ブラウザに対してPOSTパラメータを渡す」という点について、
・そもそも可能なのかどうか
・可能な場合はその方法など
を、ご教授いただければと存じます。
(とはいえ、頂いたご意見は色々と参考にさせていただきます!)

以上、よろしくお願い致します。

ohisamallc

unread,
Jun 21, 2011, 7:05:46 PM6/21/11
to android-g...@googlegroups.com

山形のohisamaです。
山形は、今日は朝から暑いです。
がんばろう東北。

次のような呼び出しになるかと。(たぶん動かないです。)
現在、確認できる状況に無いので、そちらでお願いします。


 Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse("目的のURL"));

intent.setType("application/octet-stream");
intent.putExtra(Intent.EXTRA_STREAM, "post data");
startActivity(intent);

解決策
  似非ブラウザをwebkitで作って、上記intentを受ける。


いつも参考にさせていただいてます。


ブラウザにPOSTパラメータを渡して起動させたいのですが、可能なのでしょうか。


恐れ入りますが、ご教授いただけると幸いです。

heppokon

unread,
Jun 21, 2011, 10:09:22 PM6/21/11
to 日本Androidの会
heppokon と申します。

私も先日、同じ内容で悩んでいました。
その時に、調べた結果では、
 Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse("目的のURL"));
startActivity(intent);

のパターンではPOSTで送れないという結論に達しました。

android開発歴4か月ですので、方法はあるかも知れませんが・・・・。

で、解決策として、
一度、GETで、リダイヤルページに飛ばし、
そのページで、javascriptを使用しPOSTで目的のページにリダイヤルさせています。

私の環境では、PHPが使えましたので、PHPでGETを受け取りjavascriptを吐き出し、bodyのonloadで、formをsubmit
しています。

ただこの方法だと、リダイヤルページがブラウザの履歴に残るため、「戻る」ボタンで、リダイヤルページが表示されてしまいます・・・。

参考になれば幸いです。

tmmr kz

unread,
Jun 22, 2011, 3:59:38 AM6/22/11
to android-g...@googlegroups.com
結局サーバ側と協議し、
GETパラメータ指定で起動しても問題ないような仕組みを検討する方向で落ち着きました。

> ohisamalloc 様

そんな方法もあるんですね!
合間を見て勉強してみます。

> heppokon 様

私も似たような形で、
1. assetsにリダイレクト用HTMLを用意
2. 裏で持っているWebViewに、GET指定で1.のHTMLをロード
3. Javascriptで本来のページにPOST指定でsubmit
とかしてみましたが、ダメでした。
WebView内でリダイレクトが走ると端末側のブラウザに連携する、というとこからヒントを得てやってみたのですが、
Javascriptを経由すると、結局WebViewの中に目的のページが表示されるだけでした。。


ご回答いただいた皆様、ありがとうございました!
Reply all
Reply to author
Forward
0 new messages