如何将数据传递给android市场在chrome上使用新的scheme?

所以我按照这里注意到,你可以在网站上放一个链接,让用户点击它。 如果用户安装了应用程序,则应用程序将启动。 如果应用程序没有安装,Google Play商店将会启动并search特定的软件包,这是一个很棒的function! 但是从我的理解来看,这会松散传递string来玩店的能力。

根据这里 ,你可以有一个像market://details?id=your.package.name&referrer=YourReferrerString的链接market://details?id=your.package.name&referrer=YourReferrerString 。 如果在应用程序中设置了广播接收器,您将能够捕获引用者string,但是如果使用了来自此处的第一个方法,我怎样才能达到相同的目标?

这里是我能find的唯一线索,讨论Chrome上的新function(?),但似乎没有回答我的问题。

谢谢!!

Solutions Collecting From Web of "如何将数据传递给android市场在chrome上使用新的scheme?"

结果很简单。 Chrome的默认引荐来源是'com.android.chrome'。 通过在您的intent:// URI中放入&referrer=包后覆盖这个,例如:

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

这里有一个要点解释更完整的解决scheme的JavaScript的一部分,也回落到一个正常的市场链接,如果意图:/ /scheme不工作: 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>