我正在编写一个浏览器,并希望实现一个按钮"将网站添加到主屏幕"因此,站点图标(apple-touch-icon)和标题将由启动器获取并显示。
我找到了代码 -
countdown
但是,不幸的是,onCreate的意图没有任何额外的数据:
Intent shortcutIntent = new Intent();
shortcutIntent.setClassName(getPackageName(), "Browser");
shortcutIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
shortcutIntent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
shortcutIntent.addCategory(Intent.ACTION_PICK_ACTIVITY);
shortcutIntent.putExtra("EXTRA_URL", webView.getUrl());
Intent intent = new Intent();
intent.putExtra(Intent.EXTRA_SHORTCUT_INTENT, shortcutIntent);
intent.putExtra(Intent.EXTRA_SHORTCUT_NAME, webView.getTitle());
intent.putExtra(Intent.EXTRA_ORIGINATING_URI, webView.getUrl());
//TODO change to apple-touch icon
Bitmap btm = webView.getFaviconImage();
intent.putExtra(Intent.EXTRA_SHORTCUT_ICON, btm);
intent.setAction("com.android.launcher.action.INSTALL_SHORTCUT");
sendBroadcast(intent);
我应该如何将额外的参数(URL)传递给启动器,以便我能够进一步阅读它?
答案 0 :(得分:0)
试试这个
intent.putExtra(EXTRA_URL, Uri.parse(webView.getUrl()));
答案 1 :(得分:0)
所以我设法使用下一个代码解决了这个任务:
将快捷方式发送到启动器:
Intent shortcutIntent = new Intent(getApplicationContext(), BrowserActivity.class);
shortcutIntent.putExtra(BrowserUnit.EXTRA_URL, webView.getUrl());
Intent intent = new Intent();
intent.putExtra(Intent.EXTRA_SHORTCUT_INTENT, shortcutIntent);
intent.putExtra(Intent.EXTRA_SHORTCUT_NAME, webView.getTitle());
//TODO change to apple-touch icon
Bitmap btm = webView.getFaviconImage();
intent.putExtra(Intent.EXTRA_SHORTCUT_ICON, btm);
intent.setAction("com.android.launcher.action.INSTALL_SHORTCUT");
sendBroadcast(intent);
撤回正确的网址:
//in onCreate
if (getIntent() != null){
//if we are launching from launcher shortcut
Bundle bundel = getIntent().getExtras();
if (bundel != null) {
String url = bundel.getString(BrowserUnit.EXTRA_URL);
onSearchPressed(url);
}
}