[英]Launch the Android App using deep linking
我正在嘗試使用深層鏈接啟動我的Android應用程序。 基本上,用戶將收到帶鏈接的電子郵件,當用戶點擊鏈接時,應該啟動應用程序。 我知道如何進行基本的深層鏈接,但是,我想要啟動實際的App而不僅僅是一個特定的活動。 我的深層鏈接方案類似於“mydeeplinking”,在電子郵件中就像“mydeeplinking://”。 我正在尋找類似於iOS深層鏈接的東西,它推出了整個App。 任何幫助,將不勝感激。 提前致謝。
基本上,您需要做的就是使用intent-filter
來告訴Android應該將哪種類型的數據路由到您的應用。
AndroidManifest.xml中:
<activity android:name="com.example.MainActivity" >
<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:scheme="http" />
<data android:scheme="https" />
<data android:host="www.example.com" />
<data android:path="/" />
<data android:path="/map" />
</intent-filter>
</activity>
當用戶點擊以下任何鏈接時,這將啟動您的MainActivity:
http://www.example.com/
https://www.example.com/
http://www.example.com/map
https://www.example.com/map
Firebase大大增強了深層鏈接。 它有點難以入手,但效果很好! 請查看此鏈接以獲取示例。
將這種深層鏈接與iOS進行比較可能會產生混淆,因為它們的工作方式不同。 Android一直能夠將信息從一個應用程序推送到另一個應用程序,甚至可以從網絡中獲取,這正是iOS正在做的事情。 這不是深層鏈接本身。 它可以比這更進一步 - 它甚至在用戶創建配置文件(或類似的東西)之前提供個性化的應用程序體驗。 同樣重要的是要注意,即使通過安裝應用程序,深層鏈接也會保留此個性化信息,並打開應用程序,無論該信息是什么! 這不僅僅是一個意圖! 您的問題與URI方案有關。 如果你仍然同意你正在尋找深層鏈接, 這可能會有所幫助。
如果您只是想要啟動一個應用程序(已經安裝在用戶設備上),那么可以使用意圖過濾器,並且意圖可以傳遞信息。 如果您希望用戶在應用程序中使用活動而不安裝它,那么Android即時應用程序是正確的選擇。 如果您正在尋找一種方法將信息從用戶的電子郵件或互聯網“深入”傳遞到您的應用,建議進行深層鏈接。
Intent過濾器可用於從網頁打開某些應用程序。 當選擇可以在瀏覽器或應用程序(或多個應用程序)中打開的鏈接時,將從手機屏幕底部拉出一個框,詢問用戶偏好默認情況下在未來點擊時打開。 (見下圖)可能必須更改網站的javascript以檢測用戶的操作系統並發送正確的URL調用。 iOS的工作方式略有不同。
以下是如何使用intent過濾器。 它有一些你可能會覺得有用的額外代碼..
public void startNewActivity(Context context, String packageName) {
Intent intent = context.getPackageManager().getLaunchIntentForPackage(packageName);
if (intent == null) {
// brings user to the market if app is not installed already
intent = new Intent(Intent.ACTION_VIEW);
intent.setData(Uri.parse("market://details?id=" + packageName));
}
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); // opens a new "page" instead of overlapping the same app
context.startActivity(intent);
}
如果需要同時傳遞數據,請使用intent.putExtra("name", "value");
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.