是否可以通过此应用程序点击来自任何社交计划的共享消息在应用程序中打开活动

时间:2016-10-19 14:06:27

标签: android

我的应用程序使用intent with action send将消息分享给其他社交应用程序。我想要的是,当点击此消息时,如果它安装在其他设备上,它会在我的应用中打开某个活动

1 个答案:

答案 0 :(得分:0)

使用Intent过滤器可以实现这样的功能(假设您的应用程序安装在打开消息的设备上)。

我们假设您将此网址与您的邮件一起发送:http://myapp.com/whatever(格式由您决定)。用户点击链接后会发生以下情况:

  1. 打开网址的意图将由短信应用发送。
  2. 系统会查看您设备上安装的应用及其意图过滤器。
  3. 如果多于1个intent-filter接受请求,系统将提示用户选择要用于打开链接的活动。
  4. 好了,现在我们知道它是如何工作的,让我们为我们的网址声明我们自己的意图过滤器:

    <activity android:name=".MyActivity">
            <intent-filter>
                <action android:name="android.intent.action.VIEW" />
    
                <category android:name="android.intent.category.BROWSABLE" />
                <category android:name="android.intent.category.DEFAULT" />
    
                <data
                    android:host="myapp.com"
                    android:path="/whatever"
                    android:scheme="http" />
            </intent-filter>
    </activity>
    

    现在,在用户尝试打开您的网址后,系统会提示他使用MyActivity打开链接。