たとえば、Webサイトの「navigon://」にリンクを追加して、iOSデバイスでNavigonアプリがインストールされている場合にそれを開くことができます。
Androidで(インストールされていると仮定して)Webサイトからアプリを開く同様の簡単な方法はありますか?
Androidディープリンク:マニフェストにインテントフィルターを追加する
<activity
Android:name="com.example.Android.GizmosActivity"
Android:label="@string/title_gizmos" >
<intent-filter Android:label="@string/filter_title_viewgizmos">
<action Android:name="Android.intent.action.VIEW" />
<category Android:name="Android.intent.category.DEFAULT" />
<category Android:name="Android.intent.category.BROWSABLE" />
<!-- Accepts URIs that begin with "http://www.example.com/gizmos” -->
<data Android:scheme="http"
Android:Host="www.example.com"
Android:pathPrefix="/gizmos" />
<!-- note that the leading "/" is required for pathPrefix-->
<!-- Accepts URIs that begin with "example://gizmos”
<data Android:scheme="example"
Android:Host="gizmos" />
-->
</intent-filter>
https://developer.Android.com/training/app-indexing/deep-linking.html
Androidで intent filters を確認してください。カテゴリを特別にチェックしてください。
iOSの実装とAndroidモバイルディープリンク について知っておく必要があるすべてを参照してください。これはAndroidおよびiOS。
Deep Links があり、Android 6.0 Android App Links から始まります。後者は開くことを目的としています。たとえば、この検証を使用しない場合、reddit.comは7つのアプリケーションで開くことができます。
必要なすべてのActivity
を、それを開くリンクに関連付けることができます。たとえば、https://awesomejobs.com/jobs/{id}
などのアプリケーションリンクで開く場合、これらの行をAndroidManifest.xml
に追加する必要があります。
<activity Android:name="com.awesomejobsapp.ui.activity.JobActivity">
<intent-filter>
<action Android:name="Android.intent.action.VIEW" />
<category Android:name="Android.intent.category.BROWSABLE"/>
<category Android:name="Android.intent.category.DEFAULT" />
<data Android:scheme="https"
Android:Host="awesomejobs.com"
Android:pathPrefix="/jobs" />
</intent-filter>
</activity>
次に、JobActivity
に書き込みます(ロシア語の article からコードを受け取ります):
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.ac_job);
final Intent intent = getIntent();
final String action = intent.getAction();
final String data = intent.getDataString();
if (Intent.ACTION_VIEW.equals(action) && data != null) {
final String jobId = data.substring(data.lastIndexOf("/") + 1);
loadJobDetails(jobId);
}
}