当点击URL时,如何在Android中打开活动页面

6
在WordPress中,忘记密码后会发送一个链接用于重置旧密码,链接格式如下:http://mysites.com/wp-login.php?action=rp&key=d7LmrBvrBrruSKh3ZX4v&login=samuel。如果用户从其Gmail帐户单击该链接,该应用程序如何干预?当用户点击链接时,将显示一系列应用程序,包括我的应用程序。如果用户选择我的应用程序,则会打开一个新的活动。谢谢。
1个回答

5
您需要遵循W3C等机构的URI标准规则,这基本上意味着:不要这样做。
Android定义了一种URI语法来描述通用Intent。 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,而只是自定义操作),并以这种方式使您的应用程序正常工作。然后,您可以创建一个浏览器链接以相同的方式启动您的应用程序,前提是您的意图过滤器处理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 应该启动您的活动。

来源

来源


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接