如何使用 chrome 上的新方案将数据传递到 android Market?

Posted

技术标签:

【中文标题】如何使用 chrome 上的新方案将数据传递到 android Market?【英文标题】:how can I pass data to android Market using the new scheme on chrome? 【发布时间】:2013-08-09 12:45:05 【问题描述】:

所以我注意到根据here,您可以在网站上放置一个链接并让用户点击它。如果用户安装了应用程序,应用程序将被启动。如果未安装该应用程序,Google Play Store 将启动并搜索特定包,这是一个很棒的功能!!但据我了解,这将失去通过推荐字符串播放商店的能力。

根据here,可以有market://details?id=your.package.name&referrer=YourReferrerString之类的链接。如果在应用程序中设置了广播接收器,您将能够捕获引荐来源字符串,但是如果我使用来自here 的第一种方法,我怎样才能达到相同的目标?

here 是我能找到的唯一一个讨论 Chrome 上的新 (?) 功能的帖子,但它似乎没有回答我的问题。

谢谢!!

【问题讨论】:

据我所知,referrer 功能现在几乎完全被破坏了(3.1 后)。 真的吗?从何时起?通过此链接market://details?id=your.package.name&referrer=YourReferrerString,我仍然可以使用之前的引荐来源网址功能 我想引入 Chrome 的新意图可能还没有完成。文档不敢多说…… 这取决于您使用的 Google Play 版本,我不能说我最近尝试过,但最后我检查它不起作用,最近我没有听到任何相反的消息.如果它适合你,那么我的信息可能已经过时了。 感谢提供信息的人!经过几天的尝试,我认为新的 Chrome 方案还没有完成.... 【参考方案1】:

结果很简单。 Chrome 的默认引荐来源网址是“com.android.chrome”。通过将 &referrer= 放在您的 intent:// URI 中的 package 之后来覆盖它,例如:

var g_intent = "intent://" + code + 
  "/#Intent;scheme=yourscheme;package=com.your.app&referrer=code%3D" + 
  code + ";launchFlags=268435456;end";

这里有一个要点,它更全面地解释了解决方案的 javascript 部分,并且如果 intent:// 方案不起作用,也会退回到正常的市场链接:https://gist.github.com/akent/dec1b4b7383436b4623e

在你的 Java 代码中:

public static class InstallReferrerReceiver extends BroadcastReceiver 
    @Override
    public void onReceive(Context context, Intent intent) 
        String referrer = intent.getStringExtra("referrer");
        // Do things with your referrer here
    

在 AndroidManifest.xml 中:

    <receiver android:name=".YourActivity$InstallReferrerReceiver" android:exported="true">
        <intent-filter>
            <action android:name="com.android.vending.INSTALL_REFERRER" />
        </intent-filter>
    </receiver>

【讨论】:

我在使用这个解决方案时遇到了一些问题。该应用程序并不总是通过引荐来源获得额外的意图。最后,我最终使用了 Branch Deeplink SDK,它对深度链接功能进行了此操作 "Chrome 的默认引荐来源网址是 'com.android.chrome" 非常感谢。另一个问题是,如果意图方案不起作用并且应用程序被重定向到市场,那么推荐人也会被携带吗?

以上是关于如何使用 chrome 上的新方案将数据传递到 android Market?的主要内容,如果未能解决你的问题,请参考以下文章

如何在布局类似于fork的UIViewControllers之间导航和传递数据?

提示登录后如何将 $_POST 数据传递到 youtube 上传脚本

如何使用 Chrome 的新 `console.log()` 输出?

移动 Chrome 上的 CORS Allow-Access-Control-Origin

chrome 扩展通过共享本地存储将多条消息传递到外部站点

在 Mac 上默认启用 Chrome 上的远程调试?