Cordova从其他应用程序接收共享数据

时间:2016-12-11 14:33:40

标签: android cordova android-intent

首先请不要将此问题视为重复。所有其他问题都是陈旧的,我已经尝试了大多数问题的解决方案,但没有一个能够解决问题。

我正在使用Android应用,我添加了我的应用以分享Android菜单。我想添加功能,以便用户在共享列表中点击我的应用,例如在Chrome浏览器或Google云端硬盘应用中,我的应用会从该应用中接收数据,例如:来自Chrome,它将成为URL。

我尝试使用不同的插件,并阅读了很多关于如何在我的应用中使用intent的帖子。不幸的是,它们都没有用。 我试过了:

有没有人有这个工作? 我的AndroidManifest.xml如下 - 关于intent的部分:

        <intent-filter android:label="@string/launcher_name">
            <action android:name="android.intent.action.MAIN" />
            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
        <intent-filter>
            <action android:name="android.intent.action.SEND" />
            <action android:name="android.intent.action.SEND_MULTIPLE" />
            <category android:name="android.intent.category.DEFAULT" />
            <data android:mimeType="*/*" />
        </intent-filter>

在我的config.xml中,我有:

<preference name="AndroidLaunchMode" value="singleTask" />

而且我没有得到我期待的数据。

当我使用https://github.com/napolitano/cordova-plugin-intent插件时,我得到了意图,但是缺少了clipItems元素,插件也没用了。

我做错了什么?

任何帮助表示感谢。

1 个答案:

答案 0 :(得分:1)

最后我做到了。 我使用了https://github.com/napolitano/cordova-plugin-intent ver 0.1.3和

window.plugins.intent.setNewIntentHandler(function (intent) {
    // To get browser URL I had to use
    var subject = intent.extras['android.intent.extra.SUBJECT'];
    var url = intent.extras['android.intent.extra.TEXT'];
    // For Chrome, Opera and FireFox it works. For build in Android browser TEXT holds page title and URL joined with +
});

尽管版本0.1.3已经

window.plugins.intent.getRealPathFromContentUrl(contentUrl, function (realPath) {}, function () {});

可用我无法使用它,因为这没有给我我想要的数据。 contentUrl对于不同的浏览器是不同的,例如对于Chrome来说它是uri,并且用于在Android浏览器中构建文本。

我使用CLI

安装了ver 0.1.3
phonegap plugin add https://github.com/napolitano/cordova-plugin-intent.git#61a47ae8c28a62004eeff4ed96a6f3c64c271a16

我无法使用config.xml中的标记添加它

我希望这会对别人有所帮助。