开放意向分享
Opening intent on Sharing
我想分享一个 link,这样当其他用户点击那个 link 时,它会打开我的应用程序,其中包含一些我可以处理的 Intent 数据。
Intent i= new Intent(android.content.Intent.ACTION_SEND);
i.setType("text/plain");
i.putExtra(android.content.Intent.EXTRA_SUBJECT,"Subject");
i.putExtra(android.content.Intent.EXTRA_TEXT, "xyz.com/blah");
i.putExtra("important stuff", "important stuff");
startActivity(Intent.createChooser(i, "Share via"));
我也在清单中添加了这个:
<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="http" />
<data android:scheme="https" />
<data android:host="xyz.com" />
</intent-filter>
因此,单击共享文本后,我的应用程序将打开。现在我想根据 important stuff
在我的应用程序中工作。但是,在单击它时(例如来自 Whatsapp),我只会在收到的意图中得到以下信息。
字符串名称:com.android.browser.application_id
键中的值:com.whatsapp
如何取回我发送的 important stuff
意图?
How can I get back the important stuff I sent on the intent?
你不知道。
虽然我们当然欢迎您在 Intents
上添加随机附加功能,但不要指望其他应用程序对它们做任何事情。特别是,the ACTION_SEND
documentation 中没有任何内容要求 ACTION_SEND
的实施者对随机额外内容做任何事情,更不用说以某种方式将它们还给你了。
同样,虽然欢迎您发明新的 HTTP headers,但不要求 Web 服务器注意它们,更不用说将它们作为响应发送回给您了。
相反,将 xyz.com/blah
替换为 xyz.com/important/stuff
(或可能 xyz.com/blah?important=stuff
),并从用于启动 activity 的 Uri
中获取数据.您通过 activity 的 onCreate()
方法中的 getIntent().getData()
获得此 Uri
(或者可能 Intent
上的 getData()
传递给 onNewIntent()
,取决于您的清单设置以及此 activity 的现有实例是否已存在)。
我想分享一个 link,这样当其他用户点击那个 link 时,它会打开我的应用程序,其中包含一些我可以处理的 Intent 数据。
Intent i= new Intent(android.content.Intent.ACTION_SEND);
i.setType("text/plain");
i.putExtra(android.content.Intent.EXTRA_SUBJECT,"Subject");
i.putExtra(android.content.Intent.EXTRA_TEXT, "xyz.com/blah");
i.putExtra("important stuff", "important stuff");
startActivity(Intent.createChooser(i, "Share via"));
我也在清单中添加了这个:
<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="http" />
<data android:scheme="https" />
<data android:host="xyz.com" />
</intent-filter>
因此,单击共享文本后,我的应用程序将打开。现在我想根据 important stuff
在我的应用程序中工作。但是,在单击它时(例如来自 Whatsapp),我只会在收到的意图中得到以下信息。
字符串名称:com.android.browser.application_id
键中的值:com.whatsapp
如何取回我发送的 important stuff
意图?
How can I get back the important stuff I sent on the intent?
你不知道。
虽然我们当然欢迎您在 Intents
上添加随机附加功能,但不要指望其他应用程序对它们做任何事情。特别是,the ACTION_SEND
documentation 中没有任何内容要求 ACTION_SEND
的实施者对随机额外内容做任何事情,更不用说以某种方式将它们还给你了。
同样,虽然欢迎您发明新的 HTTP headers,但不要求 Web 服务器注意它们,更不用说将它们作为响应发送回给您了。
相反,将 xyz.com/blah
替换为 xyz.com/important/stuff
(或可能 xyz.com/blah?important=stuff
),并从用于启动 activity 的 Uri
中获取数据.您通过 activity 的 onCreate()
方法中的 getIntent().getData()
获得此 Uri
(或者可能 Intent
上的 getData()
传递给 onNewIntent()
,取决于您的清单设置以及此 activity 的现有实例是否已存在)。