【问题标题】:Creating home screen browser shortcuts from android app从 android 应用程序创建主屏幕浏览器快捷方式
【发布时间】:2011-05-05 04:34:12
【问题描述】:

我有一个 php 站点,它基本上就像一个站点目录,我想要实现的是在我单击应用程序中的 URL 时创建一个主屏幕快捷方式,这意味着: 我需要首先截取 url,对其进行解码,然后为 url 中的参数创建浏览器快捷方式。

提前致谢,Itai。

【问题讨论】:

  • 你能再充实一点吗,我有点困惑 - 我们是在谈论在你的应用程序中拦截 WebView 中的点击,还是每次在任何应用程序中点击已知 URL 时?
  • 你的意思是这样的:创建一个安卓应用程序,让用户在主屏幕上为他们喜欢的网站创建浏览器快捷方式,包括网站网址中的参数。 ??? :-/
  • @Harry Joy,是的,在主屏幕上创建浏览器快捷方式。但是创建此快捷方式的按钮位于 php 页面上,因此我需要拦截
  • @Phil Lello,我的应用程序中的一个 WebView,我知道这是使用 shouldOverrideUrlLoading 完成的,问题是我不明白如何从那里创建快捷方式。顺便说一句 - 我完全是 Java 新手。

标签: java android


【解决方案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;
}

我希望这会有所帮助。我没有对此进行测试,但这是一般的想法!祝你好运

【讨论】:

  • 这帮助很大,但是,我希望快捷方式成为浏览器书签(这意味着它将使用我正在制作快捷方式的页面的 favicon.ico 以及标题) .
  • 嗨 Itai,很高兴这有帮助。不幸的是,上面的代码部分来自我自己的浏览器应用程序之一,发布所有细节会很糟糕,但我可以给你一些建议。对于 favicon,WebViewClient.onReceivedIcon 和 webView.getFavicon() 可以提供帮助,将其转换为 drawable 并将其放置在 i.putExtra(Intent.EXTRA_SHORTCUT_ICON_RESOURCE,/*drawable*/);部分。使用 webView.getTitle() 可以获得的标题
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2011-09-14
  • 1970-01-01
  • 2013-06-24
  • 1970-01-01
  • 2012-03-22
  • 1970-01-01
相关资源
最近更新 更多