【问题标题】:android intent-filter <data> is not working correctlyandroid 意图过滤器 <data> 无法正常工作
【发布时间】:2023-03-11 02:44:01
【问题描述】:

我试图让我的应用程序在浏览器中的特定 URL 上拦截。以下是我在 Manifest 中的代码:

<activity
            android:name="com.myactivity.RootActivity">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
            <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:host="subdomian.maindomain.com" />

            </intent-filter>
        </activity>

目前它工作正常,当我打开链接 http://subdomain.maindomain.com/ 时,会出现一个对话框,其中列出了我的活动。

但是当我像下面这样在意图过滤器中添加android:path 时,它停止工作,它甚至无法使用没有路径的简单 url。

<activity
            android:name="com.myactivity.RootActivity">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
            <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:host="subdomian.maindomain.com" />
                <data android:path="myPath" />

            </intent-filter>
        </activity>

我在这里做错了吗?

【问题讨论】:

    标签: java android android-activity intentfilter


    【解决方案1】:

    我使用这些链接测试了你所说的内容,它对我有用

    <data android:scheme="http" />
    <data android:host="developer.android.com" />
    <data android:path="/guide/topics/manifest/data-element.html"/>
    

    而我使用的意图是

    Intent browserIntent = new Intent(
        Intent.ACTION_VIEW,
        Uri.parse("http://developer.android.com/guide/topics/manifest/data-element.html"));
    startActivity(browserIntent);
    

    android:path 必须在您提供的主机 URL 之后匹配才能正常工作? 你能指定你使用的网址吗? 阅读this链接寻求帮助

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-09-15
      • 1970-01-01
      • 2015-02-14
      • 2013-08-16
      • 2012-11-16
      相关资源
      最近更新 更多