App Linking是一种支持Android、iOS、HarmonyOS、Web等多种平台的跳转链接,链接的目标内容可以是您想要推广的产品优惠活动,也可以是用户之间可以互相分享的应用原生内容。您可以在创建App Linking后将链接地址直接发送给用户,或者由用户在应用中动态生成App Linking并分享给其他用户,接收到App Linking的用户点击链接后即可跳转到指定页面。
当用户点击App Linking时:
在本次Codelab中,您将建立一个集成App Linking的Android应用程序。您可以在AGC上创建一个App Linking链接,然后在应用中点击此链接就可直接拉起App。
集成App Linking,需要完成以下准备工作:
针对Android Studio开发环境,华为提供了maven仓集成方式的SDK包,开发前需集成SDK到您的Android Studio项目中。
// 配置如下地址
apply plugin: 'com.huawei.agconnect'
dependencies {
// 配置如下地址
implementation 'com.huawei.agconnect:agconnect-applinking:1.6.5.300'
implementation 'com.huawei.hms:hianalytics:6.3.2.300'
}
本次Codelab中您可以在您的Android Studio工程中创建一个布局页面,参照下图进行UI设计,能够接收App Linking并且展示接收结果即可。
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MainActivity">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Welcome to the Codelab"
android:textSize="24dp"
android:textAlignment="center"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintVertical_bias="0.1" />
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="getLinkingResult:"
android:textSize="20sp"
android:textAllCaps="false"
android:textStyle="bold"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintVertical_bias="0.3" />
<TextView
android:id="@+id/result_text"
android:layout_width="match_parent"
android:layout_height="50dp"
android:textSize="15dp"
android:hint="Result"
android:textAlignment="center"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintVertical_bias="0.4" />
</androidx.constraintlayout.widget.ConstraintLayout>
<intent-filter>
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.BROWSABLE" />
<data android:host="applinking.codelab" android:scheme="codelabeasy" />
</intent-filter>
AGConnectAppLinking.getInstance().getAppLinking(this).addOnSuccessListener(resolvedLinkData -> {
Uri deepLink = null;
if (resolvedLinkData!= null) {
deepLink = resolvedLinkData.getDeepLink();
Log.i("AppLinkingCodeLab", "Open From App Linking: " + deepLink.toString());
TextView resultText = findViewById(R.id.result_text);
resultText.setText(deepLink.toString());
// Perform subsequent processing based on the deep link
}
});
祝贺您,您已经成功地构建了您的第一个集成App Linking的应用程序,并学到了: