适用于Android应用程序的Cordova中的文件选择器插件

时间:2018-10-29 15:45:50

标签: javascript java android cordova cordova-plugins

我有一个Cordova应用程序,我想让用户从设备内存中选择CSV文件。我自己创建了一个插件,可以在Javascript代码中成功调用它:

CallbackContext tmp = null;

    protected boolean openFile(CallbackContext callbackContext)
    {
        Context ctx = this.cordova.getActivity().getApplicationContext();
        Intent intent = new Intent();
        intent.setType("*/*");
        intent.setAction(Intent.ACTION_GET_CONTENT);

        PluginResult r = new PluginResult(PluginResult.Status.NO_RESULT);
        r.setKeepCallback(true);
        callbackContext.sendPluginResult(r);
        tmp = callbackContext;

        this.cordova.setActivityResultCallback(this);
        this.cordova.startActivityForResult(this, Intent.createChooser(intent, "Select a file"), 123456);
        return true;
    }

但是现在我有点困惑。通常,我在函数末尾所做的只是简单地调用callbackContext.success(myResult);,无论结果如何(通常是字符串)。这次虽然我不能。在线检查似乎必须创建另一个功能:

@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) 
{
    if(requestCode == 123)
    {
        Uri uri = data.getData();
        tmp.sendPluginResult(new PluginResult(PluginResult.Status.OK, uri.toString()));
    }
}

但是现在我不知道如何处理返回的数据。我不断收到类似的东西:

  

content://com.android.providers.media.documents/document/image:62

代替路径(正如我期望的那样)

0 个答案:

没有答案