自定义Android URI

时间:2015-08-05 21:02:08

标签: android android-activity uri custom-url

我在这里阅读了几个自定义URI帖子,并尝试创建一个有效的URI方案。但是,它不起作用。 XML下面的代码:

<activity android:name="testhing.ResetPasswordActivity"
            android:label="@string/title_activity_reset_password"
            android:parentActivityName="testthing.LoginActivity" >
            <meta-data
                android:name="android.support.PARENT_ACTIVITY"
                android:value="restthing.LoginActivity" />
            <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="TESTTHING" android:host="ForgottenPassword" />
            </intent-filter>
        </activity>

如果我尝试在浏览器中导航到“TESTHING:// ForgottenPassword”,它会运行Google搜索,但不会打开视图。我在电子邮件中有一个链接'TESTHING:// ForgottenPassword?token = 12345',但此链接甚至不显示为可点击。它就像没有注册自定义URI方案一样。我的语法有问题吗?

1 个答案:

答案 0 :(得分:1)

  

如果我尝试导航到&#39; TESTHING:// ForgottenPassword&#39;在浏览器中,它运行谷歌搜索但不打开视图。

Android有很多浏览器。当您在地址栏中输入PackageManager活动时,有些人可能会尝试使用Uri来查看此随机字符系列是否恰好是ACTION_VIEW。没有要求浏览器这样做。

  

我在电子邮件中有一个链接是&#39; TESTHING:// ForgottenPassword?token = 12345&#39;,但此链接甚至不显示为可点击。

Android有很多电子邮件客户端。理想情况下,电子邮件客户端在查看链接时,至少会尝试使用链接声明链接的ACTION_VIEW操作。再一次,没有要求电子邮件客户端这样做。

  

我的语法有问题吗?

我建议您使用全部小写为您的计划和主机。例如,您的电子邮件客户端可能正在应用假定小写方案的正则表达式,因为这是写入URI方案的正常方式。

总的来说,自定义方案在Android上只有一个兑换价值:它们不太可能与其他任何东西发生冲突并触发选择器。如果您使用http作为您的计划,则更有可能让应用识别您的链接,并使用&#34;此应用处理这些网址&#34;做法。但是,现在,这将触发选择器,用户可以选择浏览器或应用程序。这就是为什么在Android M中,他们正在添加在服务器上提供您自己拥有的证据的能力。 URL以及您希望这些链接直接启动到您的应用并绕过选择器。