代码之家  ›  专栏  ›  技术社区  ›  Hrishikesh Kokate

添加网站不同子目录的不同意图

  •  0
  • Hrishikesh Kokate  · 技术社区  · 6 年前

    假设我的网站在: https://www.domain.tld/

    是否可以在意义上增加不同的意图:

    https://www.domain.tld网站/ 会打开一些活动

    https://www.domain.tld/directory 1将打开一些其他活动

    https://www.domain.tld/direcotry2 将打开一些其他活动…等等?

    我有一个以Android为基础的Android Studio项目,主要是用Java编写的,如果有帮助的话。

    此外,截至目前,我的意图如下:

    https://www.domain.tld网站/ 打开一些活动

    https://subdomain.domain.tld/ 打开其他活动。

    为此,我使用了Android Studio的URL映射编辑器,如下所示:

    我已经添加了 https://www.domain.tld 作为主机,我选择了选项路径,将其文本字段留空,并将其映射到所需的活动。

    我曾经考虑过尝试pathPrefix和pathPattern,但是,我认为它在我的情况下不起作用。如果我只需要映射子目录,这很容易,但是,我需要为我的网站的根目录维护一个单独的意图。因此,路径、pathPrefix和pathPattern将包含我的根目录,因此,它可能不起作用(这只是猜测)。另外,我不太确定PathPattern的含义。

    所以,我正在考虑将子域移动到我的网站的子目录中。我会这样做的,除非有可能像我上面提到的那样处理这些意图。

    我想,这是可能的,只是不太清楚,怎么知道。

    1 回复  |  直到 6 年前
        1
  •  1
  •   Bharath Kumar    6 年前

    关于PathPattern,您可以检查 documentation .

    下面对PathPattern的支持将帮助您只处理主机URL。

    星号(“*”)将0的序列与 紧接在字符前面。

    根据您的需要,Android Studio的URL映射编辑器将帮助您为URL创建以下意向过滤器,以便打开特定活动。 提供更多详细信息 here .

         <activity
            android:name=".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:host="www.domain.tld"
                    android:scheme="https" 
                    android:pathPattern="/*" />
            </intent-filter>
        </activity>
    
        <activity
            android:name=".Main2Activity"
            <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="https"
                    android:host="www.domain.tld"
                    android:pathPrefix="/directory1" />
            </intent-filter>
        </activity>
    
        <activity
            android:name=".Main3Activity"
            <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="https"
                    android:host="www.domain.tld"
                    android:pathPrefix="/directory2" />
            </intent-filter>
        </activity>