#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()