Android Instant Apps

概述

在2017年的Google IO上,Google启动了Instant Apps的公共版本,供开发人员采用和建立。即时应用是一种加载部分内容(或Google指的是split )的方法,而用户无需访问Play商店并安装您的应用。实际上,它可以秒钟访问您的本机应用程序。如果未安装完整的Android应用程序时一直使用网站作为后备,则可以选择Instant App。您会的移动网站和你的Android的即时应用程序之间进行选择,以便确保你计划你的积分!

Branch使得在Instant Apps中开始使用基本的Branch链接变得异常容易,如下所示。此页面上的指南将引导您完成整个配置过程,以在新的Instant App中启用Branch。

即时应用图{ 。全屏宽度 }

将您的Android应用配置为即时应用

本指南与如何将您的Android应用配置为即时应用无关。有关如何执行此操作的详细说明 ,请参阅 Google '的文档。 '准备启用分支时,请返回本指南。

为什么要将Branch用于即时应用程序

如果你遵循谷歌指南,他们就会让你融入自己的网页的链接,Android应用程序链接,将触发即时应用。那科能为您做什么?首先,让我解释一下Branch如何与Instant Apps一起使用。分公司将作为的网站域名,你会除了自己的网络域名或为你的清单中唯一域Android应用链接注册。我们充当您的链接。

这里列出了Branch链接和Instant Apps的潜在用例:

  1. 由于我们为每个应用程序都提供了自定义域(yourapp.app.link或白标),因此Branch将为您托管个性化的Web链接。如果你不吨有一个网站,这意味着我们可以充分利用所有的Android应用程序链接的需求服务,自动配置和托管代表您assetlinks.json文件。
  2. 如果您有一个受欢迎的网站并配置了Android应用链接,则您可能不希望%的网络链接触发您的Instant App。您的即时应用程序将仅支持您全部应用程序功能的一小部分。您可以将Instant App配置为仅在Branch链接域和路径上触发,然后使用Branch的使用来控制用户何时链接到Instant Apps。
  3. Branch能测量和属性clicksinstalls 以及自定义转换事件回支跟踪链接所有访问到您的即时应用 ,这是在仪表盘上显示。
  4. 您可以使用Branch链接将深度链接接从Android Instant App推迟到完整的Android App。您会可能建立一个功能,推动用户从Instant应用到完整的Android应用程序,分公司可以做它的魔力在这个过渡。
  5. Branch能测量和属性clicksinstalls 完整的原生Android应用程序内和自定义转换事件,为用户谁是从即时应用简称,显示从点击转化- >即时应用程序- >全应用在仪表盘上。

设置

为您的Instant App集成Branch

因此,您确信。让就开始吧!如果您随时需要一个真实的例子,可以在我们的Github上查看完整的演示应用程序 。我们 VE复制我们的原生Android演示应用程序和修改它支持Android的即时应用。

初始化Branch SDK

转到您的核心库项目 ,在其中定义您的Application类,并将代码片段按如下方式放入onCreate()方法。如果您安装了之后打算深度链接接从你的Android的即时应用到您的完整Android应用,您将需要确保分公司小号InstallListener包含在你的清单。方法setPlayStoreReferrerCheckTimeout 定义了Branch初始化将等待Google Play Referrer多长时间,这可能需要一秒钟。

public void onCreate() {
  super.onCreate();
  // Branch's InstallListener is needed to deferred deep link from an Android Instant App to a full app
  // This tells the Branch initialization how long to wait for the Google Play Referrer before proceeding. (Default: 1 second)
  Branch.setPlayStoreReferrerCheckTimeout(1000L);

  // Initialize the Branch SDK
  Branch.getAutoInstance(this);
}

添加您的Branch键并注册安装Referrer

由于存在许多不同的清单,Instant Apps可能会造成混乱,但是您想查找包含application 标记的清单。确保在此处定义了应用程序类名称,然后在元素application 内指定Branch键

<application
        android:allowBackup="true"
        android:label="@string/app_name"
        android:theme="@style/AppTheme"
        android:supportsRtl="true"
        android:name=".MyApplication">

  <meta-data android:name="io.branch.sdk.TestMode" android:value="false" /> <!-- Set to true to use Branch_Test_Key -->
  <meta-data android:name="io.branch.sdk.BranchKey" android:value="key_live_my_live_key" />
  <meta-data android:name="io.branch.sdk.BranchKey.test" android:value="key_test_my_test_key" />

  <receiver android:name="io.branch.referral.InstallListener" android:exported="true">
    <intent-filter>
       <action android:name="com.android.vending.INSTALL_REFERRER" />
    </intent-filter>
  </receiver>
</application>

将您的Branch链接配置为Android应用链接

本指南假设您'过去VE已经配置分局Android应用程序链接。如果你的避风港' Ť的连线配置了全面的本地应用程序使用科为Android应用程序链接。

现在,您只需编辑上述清单,并在下面的代码片段粘贴所期望的activity. 然后你将需要更换xxxx 用自己的自定义子域,这将是可见的科链接设置仪表板在页面底部。如果您重新使用自定义子域,则可以在上面的链接中找到有关配置Android应用链接的高级说明。

<application
  ......>

<activity...
  <intent-filter android:autoVerify="true">
      <action android:name="android.intent.action.VIEW" />
      <category android:name="android.intent.category.DEFAULT" />
      <category android:name="android.intent.category.BROWSABLE" />
      <data android:scheme="https" android:host="xxxx.app.link" />
      <data android:scheme="https" android:host="xxxx-alternate.app.link" />
  </intent-filter>
</activity>

</application>

您的Branch链接上的自定义路径

可选地,当您创建缩短的Branch链接 ,可以在创建流程中指定alias 参数(此处描述此处为 )以定义自定义路径(例如https://example.app.link/product/id12345 或任何自定义字符串)。如果您要管理多个Instant App路径,这将很有帮助。

检索Branch深度链接接数据

在配置为从链接中打开的活动中添加分支sessionBuilder()...init() ,以接收深层链接参数。

\protected void onStart() {
    super.onStart();
    Branch.sessionBuilder(this).withCallback(new Branch.BranchReferralInitListener() {
        @Override
        public void onInitFinished(JSONObject referringParams, BranchError error) {
            Log.d(""Branch"", ""onInitFinished() with deep link data: "" + referringParams);
        }
    }).init();
}

配置从Instant App到Full App的深度链接

现在,用户已经进入您的Instant App,您准备重新将其转换为安装完整的本机应用程序。不用担心,科作为有你盖的!我们已使用一种方法自动覆盖Google Play提示,该方法使用您通过安装传递上下文所需的所有深度链接接数据自动配置了默认值showInstallPrompt 。此外,我们可以为您提供有关通过此提示进行转换的用户数量的完整归因。

Branch SDK提供了方便的方法来检查应用程序类型和完整的应用程序转换。这消除了对Google IA支持SDK( com.google.android.instantapp )的依赖。这里有一些使生活变得轻松的方法

  • Branch#isInstantApp()

此便捷方法会检查当前运行的应用程序版本是Instant App还是Full Android App,以便为您提供方便

  • Branch#showInstallPrompt()

此方法显示完整Android应用程序的安装提示,使您可以轻松地通过安装过程将Branch引用深度数据传递给完整应用程序。与Branch通常使用延迟的深度链接接类似,完整的应用程序将在句柄回调中接收深度链接接参数。

下例显示了如何创建自定义Branch通用对象,并将其与安装提示相关联,该提示将在用户安装后传递到完整的本机Android应用。

if (Branch.isInstantApp(this)) {
  myFullAppInstallButton.setVisibility(View.VISIBLE);
  myFullAppInstallButton.setOnClickListener(new OnClickListener() {
    @Override
    public void onClick(View v) {
       BranchUniversalObject branchUniversalObject = new BranchUniversalObject()
            .setCanonicalIdentifier("item/12345")
            .setTitle("My Content Title")
            .setContentDescription("My Content Description")
            .setContentImageUrl("https://example.com/mycontent-12345.png")
            .addContentMetadata("property1", "blue")
            .addContentMetadata("property2", "red");

      Branch.showInstallPrompt(myActivity, activity_ret_code, branchUniversalObject);
    }
  });
} else {
  myFullAppInstallButton.setVisibility(View.GONE);
}

故障排查

测试即时应用

您可以通过多种方式创建Branch链接,但是要快速测试您的Branch集成,请转到我们信息中心的“ 快速链接”部分并创建一个链接。如果您通过深度链接接数据中的特定键配置了深度链接接,请确保将其添加到快速链接中,以正确模拟真实的实时Branch链接。

大约一个月前更新

Android Instant Apps


建议的编辑仅限于API参考页

您只能建议对Markdown正文内容进行修改,而不能建议对API规范进行修改。