2015-04-03 4 views
0

Я хочу открыть сайт одним нажатием кнопки в приложении для Android.Android: откройте сайт одним нажатием кнопки

Я уже пробовал

Intent intent=new Intent(Intent.ACTION_VIEW,Uri.parse("https://www.google.com")); 
intent.addCategory(Intent.CATEGORY_BROWSABLE); 
startActivity(intent); 

И это работает.

Но проблема в том, что всякий раз, когда я открываю любой сайт, который не имеет "https://" в URL-адресе, приложение вылетает. , например.

Intent intent=new Intent(Intent.ACTION_VIEW,Uri.parse("www.google.com")); 
    intent.addCategory(Intent.CATEGORY_BROWSABLE); 
    startActivity(intent); 

Приложение аварийно завершает работу после этого.

Пожалуйста, помогите мне, что делать в этом случае.

Спасибо заранее.

+0

почему вы не добавить 'https: // www.' перед ссылкой, если она не имеет ? –

ответ

0

Это как запустить ссылку в выбранном браузере в телефоне пользователя

/** 
* Function to launch a default URL 
*/ 
private void launchURL() { 

    try { 
     Intent i = new Intent("android.intent.action.MAIN"); 

     /** 
     * Why the FLAG_ACTIVITY_NEW_TASK is needed 
     * http://stackoverflow.com/ 
     * questions/3689581/calling-startactivity-from 
     * -outside-of-an-activity 
     */ 
     i.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); 
     i.setComponent(ComponentName 
       .unflattenFromString("com.android.chrome/com.android.chrome.Main")); 
     i.addCategory("android.intent.category.LAUNCHER"); 
     i.setData(Uri 
       .parse("http://www.google.com")); 
     startActivity(i); 

    } catch (ActivityNotFoundException e) { 
     // Chrome is probably not installed 
     Intent i = new Intent(
       Intent.ACTION_VIEW, 
       Uri.parse("http://www.google.com")); 
     i.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); 
     startActivity(i); 
    } 
} 
+0

Вопрос обновлен. Пожалуйста, ответьте сейчас! –

+0

Пробовал ли вы функцию, которую я вставлял, не работает ли она? – user1406716

+0

Нет, программа не сработала. То же самое происходит с тем, что он не может указывать на «www.google.com», если к нему не добавлен префикс «https: //» или «http: //». –

3

Вы можете проверить корпус вручную!

if (!url.startsWith("https://") && !url.startsWith("http://")){ 
    url = "http://" + url; 
} 
Intent intent= new Intent(Intent.ACTION_VIEW, Uri.parse(url)); 
startActivity(intent); 
Смежные вопросы