Android自定义URL,用于在iOS中打开App

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Android自定义URL,用于在iOS中打开App相关的知识,希望对你有一定的参考价值。

我可以在一个网站上添加一个链接,例如“navigon://”,在ios设备中,如果安装了Navigon应用程序,它将打开它。

是否有类似的简单方法从android网站(假设已安装)打开应用程序?

答案

Android深层链接:为您的清单添加一个intent过滤器

<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。特别查看类别。

另一答案

Everything you need to know about implementing iOS and Android Mobile Deep Linking。这是Android和iOS的好文章。

你可能已经知道有Deep Links,并从Android 6.0 Android App Links开始出现。后者仅用于在您的应用程序中打开URL,而不是任何其他竞争对手。例如,如果不使用此验证,reddit.com可以在7个应用程序中打开。

enter image description here

您可以将每个需要的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);
   }
}

以上是关于Android自定义URL,用于在iOS中打开App的主要内容,如果未能解决你的问题,请参考以下文章

ios和android应用都可以注册自定义url scheme吗

在 QML 中获取自定义 iOS 方案的源 URL 的最佳方法

如何在 Android 应用程序的对话框中打开 Chrome 自定义选项卡

Android 解决通过自定义设置打开热点后手机搜索不到热点的问题。

当用户在 swift 中单击推送通知时打开自定义 url

Firebase 动态链接将自定义参数传递给 iOS 和 android