如何从网页在主屏幕上添加 android 书签?

Posted

技术标签:

【中文标题】如何从网页在主屏幕上添加 android 书签?【英文标题】:How to add android bookmark on homescreen from web page? 【发布时间】:2011-07-05 03:38:38 【问题描述】:

我是 android 网络应用程序的新手..

如何通过单击按钮使用 javascript 在网页的主屏幕上添加书签?

如果我们为用户添加书签页面提供了一种简单的方法,他们就会对添加书签表现出一些兴趣。这是我的项目的要求之一。

如何做到这一点?

【问题讨论】:

我怀疑这甚至是可能的。如果是这样,那将意味着网页可以向您的手机发出意图,我怀疑该功能已融入股票浏览器。您也许可以使用自定义浏览器或浏览器插件来完成。 【参考方案1】:

在这里回答的一些人似乎不明白您想要移动设备,而不是 IE、Firefox 等。他们似乎也没有很好地阅读您所说的“网站”而不是“移动应用程序”。不过,我相信我已经正确阅读了您的问题。

您很可能也希望在 iPhone 上使用这个,所以我也会在 iPhone 和 Android 上回答这个问题。

对于 iPhone,就像使用这个脚本一样简单:

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

不幸的是,对于 Android,它并不那么漂亮。您必须制作一个按钮或超链接,以重定向到您网站上的说明页面。说明将告诉网络访问者执行“设置 > 更多 > 将快捷方式添加到主页”并希望他们“明白”。

Android 的一个选项是您可以 fork mobile-bookmark-bubble,使其在页面底部加载,没有底部三角形,并使其显示为“单击设置按钮 > 更多 > 将快捷方式添加到主页” .同样,您可能希望将“设置”按钮的 2 个条形图标放在“设置按钮”旁边。

至于如何自定义创建的图标,我还在研究中,当我发现时会更新这个答案。

【讨论】:

关于链接坏了,我用下面的链接下载源文件。 Safari 解决方案仍然有效。只是第一次注意到书签气泡,刷新缓存无助于再次出现。 github.com/h5bp/mobile-boilerplate/wiki/Mobile-Bookmark-Bubble【参考方案2】:

这是一个可能的解决方法,虽然它不是您想要的,但我认为这是最简单的解决方案,因为我高度怀疑 android 允许网页自动向设备发出意图,因为这将是一个潜在的安全问题。 如果我错了,请有人纠正我

我建议您创建一个简单地封装书签的应用程序。当用户点击您的应用程序时,您的应用程序会创建一个意图,该意图只是将设备的默认 Web 浏览器打开到您的页面。虽然这需要用户安装一个应用程序,但它比普通书签有一些优势。您将能够跟踪有多少人安装了您的应用程序/书签,他们使用它的频率等。您还可以提供一个漂亮的图标,而不是使用库存的“书签”图标。

将该应用作为免费应用上传到市场,并在您的网页上放置一个“收藏本”链接,该链接只是引导用户下载您的免费应用。

【讨论】:

虽然这些都没有直接回答这个问题,但我相信这与我们将获得的当前 SDK 一样接近。虽然它没有 100% 达到我声明的目标,但我将 +100 声望赏金作为善意的姿态授予。感谢那些提交答案、cmets 等的人。 也可以直接在本机应用程序的视图中打开 Web 应用程序,不是吗?【参考方案3】:

您可以使用此代码在主屏幕上创建网页快捷方式。提供必要的信息,如网址、标题等。

  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);

更新

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

【讨论】:

这是一个很好的答案,但我想我应该更清楚。我说的是Android的本机浏览器,没有安装应用程序。在我的普通旧网站上,我想创建一个添加书签按钮,Android 用户可以使用该按钮将书签添加到他们的主屏幕。不过感谢您的回复! 网页是否可以通过浏览器向系统发出intent? 不,我们不能通过浏览器发出意图。不过,我们可以定义自己的方案并启动我们的活动。 安装“我们的”应用程序后就很容易了。我明白了。我希望在 Android 上找到 iPhone 上存在的类似功能。感谢您的回复!【参考方案4】:

这会有所帮助

<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 应用程序..我现在回滚了..请再次阅读我的问题..谢谢.. 此处的 JQuery 示例不会在 Android 上触发任何书签操作。 ^ 在评论之前请阅读提到的 cmets。有人编辑了这个问题,没有提到 android 应用程序。这适用于网络浏览器。 Manidhar 进行了回滚。

以上是关于如何从网页在主屏幕上添加 android 书签?的主要内容,如果未能解决你的问题,请参考以下文章

iPhone 收藏网址[添加到书签] 和 [添加到主屏幕] 显示自定义图标,而不是网页截图

如何从 PWA 应用主屏幕链接中删除 Chrome 徽标(Android O 预览版)

如何在android中显示本地推送通知(在主屏幕上的应用程序图标上,如i-phone)

iOS 11 中的 SafeArea:如何在没有安全区域的情况下使用自定义导航栏在主屏幕上添加来自 Objective-c 代码的视图

提示 iPhone 用户将用 Asp.Net MVC 开发的网页添加到主屏幕

如何在 Android 主屏幕上增加图标大小?