Android:如何在浏览器中保存所有应用都可以访问的内容?

时间:2011-08-24 00:15:13

标签: android browser cookies local-storage

基本所需功能

当Android手机上的用户访问网址http://www.example.com?key=asdf时,我希望以某种方式保存值asdf,以便手机上的任何应用可以在以后访问该网址。

最终目标

目标是通过将朋友引导到网址来邀请朋友加入应用的简单方法。该URL有一个从市场上下载我的应用程序的链接,因此接受邀请的唯一要求是访问该URL并单击单个链接。安装完应用后,它就会获取值asdf并将您与邀请您的人联系起来。

我尝试过的事情

我最初的想法是使用类似localStorage或Cookie的内容,但由于安全问题,似乎不太可能出现涉及其中任何一种的解决方案。

到目前为止,我提出的最佳解决方案是使用com.android.browser.permission.READ_HISTORY_BOOKMARKS权限来读取用户的历史记录,以便从我的域中搜索URL。这是一个非常好的解决方案,但它不适用于其他浏览器,如移动Firefox。此外,它需要一个阴暗的许可,我想尽可能避免。

2 个答案:

答案 0 :(得分:1)

很抱歉,没有任何支持的方法可以执行此操作。

答案 1 :(得分:1)

要实现您的实际目标,您可以使用Google Analytics使用的相同方法。 基本的想法是,您使用指向应用程序商店的URL,并使用特定格式的引用者值传递给应用程序。虽然此字符串的格式应该可以是任何内容,但如果您不遵循实际的Google Analytics格式,则会出现问题报告。

示例:

http://market.android.com/details?id=com.example.myapp&referrer=utm_source%3Dfriend%26utm_medium%3Dinvite%26utm_content%3Dasdf%26utm_campaign%3Dinvite

可以在Android Google Analytics

找到更多特定于分析的文档

然后,您需要为com.android.vending.INSTALL_REFERRER类型实现广播接收器

在你的清单中,它看起来像:

<!-- Used for install referrer tracking -->
<receiver android:name=".MyReceiverClass" android:exported="true">
  <intent-filter>
    <action android:name="com.android.vending.INSTALL_REFERRER" />
  </intent-filter>
</receiver>

有关实施BroadcastReceiver的详细信息,请参阅Android文档。

此方法要求朋友使用Google Marketplace(通过点击生成的网址)在设备上下载应用,因为它是接收引荐来源数据并将其传递给应用的MarketPlace应用。

注意:虽然该方法可行,但当前的MarketPlace应用可能会出现问题,导致无法正常工作。见bug:http://code.google.com/p/android/issues/detail?id=19247