如何从网页上添加Android书签到主屏幕?

17

我刚开始接触Android的Web应用程序..

如何通过单击按钮使用Javascript从网页上添加一个书签到主屏幕?

如果我们为用户提供了方便的方法来收藏页面,他们会对它们表现出一些兴趣。这是我项目的要求之一。

怎样才能实现呢?


我怀疑这是不可能的。如果可以的话,那意味着一个网页可以向你的手机发出意图,而我怀疑这个功能是否内置在股票浏览器中。您可能可以使用自定义浏览器或浏览器插件来实现它。 - slayton
4个回答

13

这里有些人好像没有理解你想要的是移动端,而不是IE、Firefox等。他们似乎也没有很好地阅读你说的“网站”,而不是“移动应用”。但是,我相信我已经正确阅读了你的问题。

极有可能你也想要iPhone的相应功能,因此我会同时回答iPhone和Android的解决方案。

对于iPhone,只需使用此脚本:

http://code.google.com/p/mobile-bookmark-bubble/

对于Android来说,情况就不那么美好了。不幸的是,您将需要创建一个按钮或超链接,将其重定向到您网站上的说明页面。该说明将告诉网页访问者执行“设置 > 更多 > 添加主屏幕快捷方式”的操作,并希望他们能够了解。

Android的一种选择是,您可以派生移动书签泡沫(mobile-bookmark-bubble)项目,使其在页面底部加载而不包含底部三角形,并让它显示“单击设置按钮>更多>添加主屏幕快捷方式”。此外,您可能还想将设置按钮的2根条形图标放在“设置按钮”旁边。

至于如何自定义创建的图标,我仍在研究中,找到后会更新此答案。


关于链接已经失效,我使用下面的链接下载源文件。Safari解决方案仍然有效。第一次注意到书签气泡,刷新缓存无法再次显示。https://github.com/h5bp/mobile-boilerplate/wiki/Mobile-Bookmark-Bubble - S.Roshanth

5
这里有一个可能的解决方法,虽然不完全符合您的要求,但我认为这是最简单的解决方案,因为我非常怀疑Android允许web页面自动向设备发出意图,这可能会存在安全问题。如果我错了,请有经验的人纠正我。
我建议您创建一个应用程序,它只是一个书签的包装器。当用户点击您的应用程序时,您的应用程序创建一个意图,仅打开设备的默认Web浏览器到您的页面。虽然这需要用户安装应用程序,但与普通书签相比,它具有几个优点。您将能够跟踪安装了您的应用程序/书签的人数,以及他们使用的频率等。您还可以提供漂亮的图标,而不是使用默认的“书签”图标。
将该应用程序作为免费应用上传到应用商店,并在您的网页上放置一个“添加书签”链接,该链接只需指示用户下载您的免费应用程序即可。

虽然这些答案都没有直接回答问题,但考虑到当前的SDK,我认为这是我们能得到的最接近的答案了。尽管它没有完全满足我的目标,但我会颁发+100声望作为一种善意的姿态。感谢那些提交答案、评论等的人。 - Bill Mote
一个人也可以在本地应用程序的视图中打开Web应用程序,不是吗? - Tyler Biscoe

4
您可以使用此代码在主屏幕上创建Web页面快捷方式。提供必要的信息,例如URL、标题等。
  final Intent in = new Intent();
  final Intent shortcutIntent = new Intent(Intent.ACTION_VIEW, Uri.parse(url));
  long urlHash = url.hashCode();
  long uniqueId = (urlHash << 32) | shortcutIntent.hashCode();
  shortcutIntent.putExtra(Browser.EXTRA_APPLICATION_ID, Long.toString(uniqueId));
  in.putExtra(Intent.EXTRA_SHORTCUT_INTENT, shortcutIntent);
  in.putExtra(Intent.EXTRA_SHORTCUT_NAME, title);
  in.putExtra(Intent.EXTRA_SHORTCUT_ICON_RESOURCE,
                    Intent.ShortcutIconResource.fromContext(
                            BrowserBookmarksPage.this,
                            R.drawable.ic_launcher_shortcut_browser_bookmark));
  in.setAction("com.android.launcher.action.INSTALL_SHORTCUT"); 
//or   in.setAction(Intent.ACTION_CREATE_SHORTCUT); 

  sendBroadcast(in);

更新

浏览器无法识别意图方案,因此您无法从网页中添加网页的快捷方式。


这是一个很好的回答,但我想我应该更清楚地表达。我指的是在Android的原生浏览器中,而不需要安装应用程序。在我的普通网站上,我想创建一个添加书签按钮,供Android用户使用,以将书签添加到他们的主屏幕上。谢谢你的回复! - Bill Mote
网页是否可以通过浏览器向系统发出意图? - slayton
不,我们无法通过浏览器发出意图。但是我们可以定义自己的方案并启动我们的活动。 - Ron
一旦“我们”的应用程序安装好了,就非常容易。我明白了。我希望在Android上找到类似于iPhone上存在的功能。谢谢您的回复! - Bill Mote

0

这可以帮助

<script language="javascript" type="text/javascript">
$(document).ready(function(){
$("a.jQueryBookmark").click(function(e){
    e.preventDefault(); // this will prevent the anchor tag from going the user off to the link
    var bookmarkUrl = this.href;
    var bookmarkTitle = this.title;

    if (window.sidebar) { // For Mozilla Firefox Bookmark
        window.sidebar.addPanel(bookmarkTitle, bookmarkUrl,"");
    } else if( window.external || document.all) { // For IE Favorite
        window.external.AddFavorite( bookmarkUrl, bookmarkTitle);
    } else if(window.opera) { // For Opera Browsers
        $("a.jQueryBookmark").attr("href",bookmarkUrl);
        $("a.jQueryBookmark").attr("title",bookmarkTitle);
        $("a.jQueryBookmark").attr("rel","sidebar");
    } else { // for other browsers which does not support
         alert('Your browser does not support this bookmark action');
         return false;
    }
});
});
</script>

<h2>Click on the respective links below to bookmark the same</h2>
<a href="http://www.developersnippets.com" title="developersnippets.com" class="jQueryBookmark">DeveloperSnippets</a>, <a href="http://www.techvideobytes.com" title="Tech Video Bytes" class="jQueryBookmark">Tech Video Bytes</a>, <a href="http://www.wittysparks.com" title="Witty Sparks" class="jQueryBookmark">Witty Sparks</a>, <a href="http://www.snehah.com/" title="Snehah.com" class="jQueryBookmark">Snehah.com</a>

获取更多信息,请访问此链接(http://www.developersnippets.com/2009/05/10/simple-bookmark-script-using-jquery/


哦,有人编辑了我的问题。实际上它是关于 Android Web 应用程序的…我现在已经回滚了。请再次阅读我的问题…谢谢。 - manidhar mulaparthi
这里的JQuery示例在Android上不会触发任何书签操作。 - Vindberg
在发表评论之前,请先阅读已有的评论。有人编辑了问题,但没有提到Android应用程序。这适用于Web浏览器。Manidhar进行了回滚。 - Rahul Arora

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接