如何在本机应用程序中处理发送意图(共享菜单项)?

时间:2017-06-03 16:28:14

标签: react-native

我已成功配置iOS应用程序来处理音频文档类型(不是深层链接!)所以我可以使用共享对话框在我的应用程序中打开音频文件,这样可以正常工作。

我已经在intent-filter中成功配置了Android AndroidManifest.xml以同样的方式处理音频文件,Android系统也认可这一点,当我在audiofiles上使用共享菜单时,我会看到我的应用。但是,Linking组件的Android实现似乎忽略了SEND意图操作,并且只关注View IntentModule.java:55所见的 if (Intent.ACTION_VIEW.equals(action) && uri != null) { initialURL = uri.toString(); } 意图操作:

MainActivity.java

我尝试在我的VIEW中修补意图,使其返回与@Override public Intent getIntent() { Intent origIntent = super.getIntent(); if (origIntent != null && Intent.ACTION_SEND.equals(origIntent.getAction())) { return new Intent(Intent.ACTION_VIEW, origIntent.getData()); } return origIntent; } 动作相同的uri,但这总是在运行时产生错误。

getData

但是我总是得到一个错误,表明ClipData为空。

我看到了this answer,但是对我来说,分享续订对我来说太过分了。

1 个答案:

答案 0 :(得分:0)

我发现Intent可能包含名为Uri的其他信息,其中也可能包含Uri。我的运气是我只有一个Uri(我想它可以包含多个@Override public Intent getIntent() { Intent origIntent = super.getIntent(); if (origIntent != null && Intent.ACTION_SEND.equals(origIntent.getAction())) { return new Intent(Intent.ACTION_VIEW, this.uriFromClipData(origIntent.getClipData())); } return origIntent; } private Uri uriFromClipData(ClipData clip) { if (clip != null && clip.getItemCount() > 0) { return clip.getItemAt(0).getUri(); } return null; } 对象,如果我一次共享多个音频文件。所以这段代码有效,我现在可以共享文件以反应原生应用

echo get_the_time('', $recent["ID"]);