Android DeepLinkテクノロジー

2510 ワード

DeepLinkって何?
DeepLinkは文字通り「深いリンク」と理解できますが、DeepLinkはAndroid開発にどのような役割を果たしているのでしょうか.簡単に言えば、この技術でwebページがリンクをクリックしてAPPが指定したページにジャンプすることを実現することができます.この技術のメリットは、私たちのアプリをリードできることです.例えば、うちの会社は不動産プラットフォームを作っています.もしユーザーがブラウザで新しい住宅リストの情報を見て、携帯電話にアプリケーションがインストールされていれば、アプリの不動産リストのページに直接ジャンプすることができます.オリジナルのページは体験と機能の上でもちろんH 5ページよりずっと強いです.この時点でアプリケーションがインストールされていない場合は、次のH 5ページに直接ジャンプするか、アプリケーション市場のダウンロードアプリケーションにジャンプするようにユーザーに促すことができます.
DeepLinkの使用方法
私たちの応用はSchemeの方式で実現したもので、くだらないことはあまり言わないで、正しい使用姿勢を見てみましょう.自分のプロジェクトを例に挙げます.インベントリファイルmanifestにintent-filterを追加する必要があります.

        
            
            
            
            
            
        


対応するActivityのコードは次のとおりです.
if (getIntent() != null && getIntent().getData() != null) {
            String refer = getIntent().getData().getQueryParameter("refer");
            String path = getIntent().getData().getPath();
            ...
}
            

途中でビジネスロジックコードを省いたのですが、ここでActivityのコードがどういう意味なのかよく分からないかもしれませんが、URL Schemeプロトコルのフォーマットを簡単に説明します.
URL Schemeプロトコルフォーマット
私自身のプロジェクトで定められたプロトコルを例にとると、完全なURL Schemaプロトコルフォーマット:
openxxx://app.xxx.com/newhouselist?city_id=xxxx&refer=xxxx

scheme、host、path、queryが含まれています.
  • openxxxは、このSchemeプロトコル名(scheme)
  • を表す
  • app.xxx.comはSchemeがどのアドレスドメイン(host)に作用するかを表す
  • newhouselistはSchemeが指定したページ(path)
  • を表します.
  • city_idは伝達パラメータ
  • を表す
    その後、Activityでpathを取得して対応するページにジャンプすることができ、getQueryParameter()メソッドでパラメータを取得してジャンプするページに渡すことができます.
    テスト
    adbコマンドを使用して、APPを起動できるかどうかをテストできます.
    adb shell am start -a android.intent.action.VIEW \
    -d "openxxx://app.xxx.com/newhouselist?city_id=11" com.xxx.android.app ( APP )

    まとめ
    DeepLinkの役割はまだ大きいことは間違いなく、私たちの応用のために導流し、ユーザー体験を高めることができます.ここではScheme方式を使って実現していますが、もう一つの方式はAndroidのAppLinksで、両者の間に違いがありますが、AppLinksはまだ使っていないので検討していますので、次回検討してからまとめてみましょう.使用中には、リンクをクリックしてジャンプできないブラウザもあります.これらのブラウザ互換性の問題は、Webページのパートナーになって解決する必要があります.