在wordpress中忘记了密码。它正在发送一个重置旧密码的链接,如
http://mysites.com/wp-login.php?action=rp&key=d7LmrBvrBrruSKh3ZX4v&login=samuel
如果用户点击其Gmail帐户中的链接,如何让我的应用受到干扰?
如果用户点击它。应用列表将与我的应用一起显示。如果用户选择我的应用程序,它将打开一个新活动。谢谢。
答案 0 :(得分:3)
您需要通过W3C遵循URI的标准规则等,这基本上意味着:不要这样做。
Android定义了一种用于描述通用Intent的Uri语法。 Intent上有一些方法可以转换为此表示形式,例如:http://developer.android.com/reference/android/content/Intent.html#toUri(int)
因此,执行此操作的方法是使用常规工具在清单中描述您要使用特定组件处理的意图类型,尤其是在您自己的命名空间中定义操作名称(com.mycompany。 myapp.action.DO_SOMETHING或其他)。然后,您可以创建与您的组件匹配的Intent,并使用Intent.toUri()来获取此URI的表示形式。这可以放在您的链接中,然后在按下时查找处理的内容,从而找到您的应用程序。注意要像这样从浏览器启动,组件必须处理BROWSABLE类别。 (你不需要在你放入链接的Intent中拥有它,浏览器会自动为你添加它。)
最后,您可能希望使用以下内容为您的应用设置意图包:http://developer.android.com/reference/android/content/Intent.html#setPackage(java.lang.String)
这是平台中的一项新功能,它允许您将链接意图直接指向您的应用,以便其他应用程序无法拦截和处理它们。
总结:阅读关于意图和意图过滤器的常规文档(例如NotePad教程,虽然你不会在这里使用内容:URI,可能只是自定义操作)并让你的应用程序以这种方式工作。然后,您可以使用浏览器链接以相同的方式启动您的应用,前提是您的intent-filter处理BROWSABLE类别。
<activity android:name=".MyActivity">
<intent-filter>
<action android:name="android.intent.action.MAIN"></action>
<category android:name="android.intent.category.LAUNCHER"></category>
</intent-filter>
<intent-filter>
<action android:name="android.intent.action.VIEW"></action>
<category android:name="android.intent.category.DEFAULT"></category>
<category android:name="android.intent.category.BROWSABLE"></category>
<data android:host="my.app" android:scheme="http"></data>
</intent-filter>
</activity>
然后,http://my.app应该启动您的活动。