Создание ярлыков браузера на главном экране из приложения для Android

#java #android

#java #Android

Вопрос:

У меня есть сайт на php, который в основном похож на каталог сайтов, чего я хочу добиться, так это создать ярлыки на главном экране при нажатии на URL в приложении, что означает: сначала мне нужно перехватить URL, расшифровать его и создать ярлык браузера для параметра в URL.

Заранее спасибо, Itai.

Комментарии:

1. Не могли бы вы пояснить это немного подробнее, я немного запутался — мы говорим о перехвате кликов в WebView в вашем приложении или о каждом нажатии на известный URL-адрес в любом приложении?

2. Вы имеете в виду следующее: создать приложение для Android, которое позволяет пользователю создавать ярлык браузера на главном экране для своих любимых веб-сайтов, включая параметры в URL веб-сайта. ????? :-/

3. @Гарри Джой, да, для создания ярлыка браузера на главном экране. Однако кнопка для создания этого ярлыка находится на странице php, поэтому мне нужно перехватить <a href>

4. @Phil Lello, веб-просмотр в моем приложении, я знаю, что это делается с помощью shouldOverrideUrlLoading, проблема в том, что я не понимаю, как создать ярлык оттуда и далее. Кстати, я полный новичок в Java.

Ответ №1:

Создать ярлык довольно просто,

 final Intent i = new Intent(); //intent for the shortcut
final Intent shortcutIntent = new Intent( /*put necessary parameters (i.e activity to launch)*/ );
shortcutIntent.putExtra(Browser.EXTRA_APPLICATION_ID /*if your launching a browser*/,
        Long.toString(/*put unique id e.g. system time etc.*/));
i.putExtra(Intent.EXTRA_SHORTCUT_INTENT, shortcutIntent);
i.putExtra(Intent.EXTRA_SHORTCUT_NAME, /*title*/);
i.putExtra(Intent.EXTRA_SHORTCUT_ICON_RESOURCE,/*drawable*/);
i.setAction("com.android.launcher.action.INSTALL_SHORTCUT");
sendBroadcast(i);
  

для перехвата URL-адресов в WebViewClient

 @Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
    if (url.equalsIgnoreCase(/*your sitemap url*/)) {
        //use the above code
    }
    return true;
}
  

Я надеюсь, что это поможет. Я не тестировал это, но это общая идея! Удачи

Комментарии:

1. Это очень помогло, однако я хочу, чтобы ярлык был закладкой браузера (это означает, что он будет использовать favicon.ico, а также заголовок страницы, на которой я создаю ярлык.

2. Привет, Итай, рад, что это помогло. К сожалению, приведенный выше код частично взят из одного из моих собственных приложений для браузера, и было бы нехорошо раскрывать все детали, но я могу дать вам несколько советов. Что касается значка, WebViewClient.onReceivedIcon и WebView.getFavicon() могут помочь преобразовать его в drawable и поместить в i.putExtra(Намерение. EXTRA_SHORTCUT_ICON_RESOURCE,/* drawable */); раздел. Заголовок, который вы можете получить с помощью WebView.getTitle()