2012-10-15 19 views
6

Mam określony wymóg, w którym muszę uruchomić adres URL przeglądarki z mojej działalności. Jestem w stanie to zrobić za pomocą następującego kodu:Android - Otwórz przeglądarkę z adresem URL z nagłówkami żądań

String finalUrl = "http://localhost:7001/display/result.jsp?param=12345"; 
Intent browserIntent = new Intent(android.content.Intent.ACTION_VIEW, 
         Uri.parse(finalUrl)); 

Teraz chcę wywołać result.jsp przekazując „param” w nagłówku żądania w żądaniu, a nie samej kwerendy.

Czy ktoś może doradzić?

dziękuję z góry

EDIT Nawet żądanie POST z „param” w organizmie żądanie powinno być dobrze.

EDIT 2 Przyjęta odpowiedź dotyczy żądania POST, nie nagłówków.

Odpowiedz

14

Android wsparcie Browser „oglądania” javascript, na przykład następujący kod można uruchomić aplikację Przeglądarka pokazać powiadomienie okno dialogowe:

String finalUrl = "javascript:alert('hello')"; 
    Intent browserIntent = new Intent(android.content.Intent.ACTION_VIEW, 
          Uri.parse(finalUrl)); 
    startActivity(browserIntent); 

Trikiem zrobić operację pocztowego przez javascript jest, aby stworzyć formularz przez javascript, a następnie przesłać go. Tak w teorii jak poniżej kod powinien działać (część kodu jest kopiowany z this post):

//String finalUrl = "http://localhost:7001/display/result.jsp?param=12345"; 
    String finalUrl = "javascript:" + 
     "var to = 'http://localhost:7001/display/result.jsp';" + 
     "var p = {param:'12345',param2:'blablabla',param3:'whatever'};"+ 
     "var myForm = document.createElement('form');" + 
     "myForm.method='post' ;" + 
     "myForm.action = to;" + 
     "for (var k in p) {" + 
      "var myInput = document.createElement('input') ;" + 
      "myInput.setAttribute('type', 'text');" + 
      "myInput.setAttribute('name', k) ;" + 
      "myInput.setAttribute('value', p[k]);" + 
      "myForm.appendChild(myInput) ;" + 
     "}" + 
     "document.body.appendChild(myForm) ;" + 
     "myForm.submit() ;" + 
     "document.body.removeChild(myForm) ;"; 
    Intent browserIntent = new Intent(android.content.Intent.ACTION_VIEW, 
          Uri.parse(finalUrl)); 
    startActivity(browserIntent); 
+0

Works absolutnie w porządku ... Dzięki za tonę Pan Ziteng ... uratował mnie dużo czasu i stresu :) – Vinay

+0

świetna robota Ziteng. –

+2

Nie działa z Chrome 4.2.2 – bluewhile

Powiązane problemy