2010-06-28 12 views
12

Ho cercato di scoprire come creare un intent che aprirà il browser preferito dell'utente senza specificare l'URL. Io so come aprirlo dando un URL specifico come questo:Android intento ad aprire il browser preferito dell'utente

Intent intent = new Intent(); 
intent.setAction(Intent.ACTION_VIEW); 
intent.setData(android.net.Uri.parse("http://www.google.com")); 
context.startActivity(intent); 

Io non voglio aprire il browser a una pagina qualsiasi, in particolare, solo la home page impostata o qualsiasi pagina che l'utente era in ultima. Ho pensato di cercare la home page impostata all'interno dell'app ma non è possibile farlo con l'app Browser predefinita perché è privata. Qualcuno sa di un modo per farlo?

risposta

1

L'URL della home page specificato dall'utente verrà memorizzato nelle preferenze per qualsiasi app del browser che stanno utilizzando. Con il modello di 'sandbox' di Androids per le app, non avrai accesso a questo a meno che l'app non abbia un provider di contenuti che consente l'accesso. Inoltre, il fornitore di contenuti differirà tra le app del browser e avrai difficoltà a coprire quelle esistenti.

Hai provato ad aprire una pagina Web che tenta di aggiornare l'URL della home page degli utenti tramite l'uso di JavaScript?

+0

No, non ho provato questo approccio come stavo pensando principalmente sull'uso di intenti. Non sono uno sviluppatore di siti web, ma lo darò un'occhiata! Ci sono delle utili API javascript che possono andare alla homepage? –

+0

Ho cercato un modo per recuperare l'homepage di un browser e un modo per accedere alla home page di un browser usando javascript ma non ho avuto fortuna. Non credo sia possibile farlo. Qualcuno si preoccuperà di dimostrarmi che ho torto. –

9

Ecco come ho fatto:

String packageName = "com.android.browser"; 
String className = "com.android.browser.BrowserActivity"; 
Intent internetIntent = new Intent(Intent.ACTION_VIEW); 
internetIntent.addCategory(Intent.CATEGORY_LAUNCHER); 
internetIntent.setClassName(packageName, className); 
mHomeActivity.startActivity(internetIntent); 

Se non avete impostato homepage, si aprirà una pagina vuota (almeno in Android 2.1).

2

Questa è una risposta in ritardo, ma sembra che questa funzionalità è disponibile nelle API 15:

Intent browser = Intent.makeMainSelectorActivity(
     Intent.ACTION_VIEW, 
     Intent.CATEGORY_APP_BROWSER); 

    startActivity(browser); 

Docs for makeMainSelectorActivity

5
  Uri uri = Uri.parse("www.google.com"); 
      Intent intent = new Intent(Intent.ACTION_VIEW,uri); 
      // Create and start the chooser 
      Intent chooser = Intent.createChooser(intent, "Open with"); 
      startActivity(chooser); 

Questo codice crea un intento di aprire utente del browser specificato.

+3

L'URl dovrebbe avere "http: //" altrimenti l'intenzione non verrebbe riconosciuta –

0

, consultare questo articolo per informazioni implicit intent in android

  Intent sendIntent = new Intent(Intent.ACTION_VIEW, Uri.parse("http://www.maidofknowledge.com")); 
      Intent chooser = Intent.createChooser(sendIntent, "Choose Your Browser"); 
      if (sendIntent.resolveActivity(getPackageManager()) != null) { 
       startActivity(chooser); 
Problemi correlati