微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

java – 尝试向React Native添加openFile方法,无法调用getCurrentActivity

在react-native-fs(https://github.com/johanneslumpe/react-native-fs)的fork中,我试图添加这段代码

public class RNFSManager extends ReactContextBaseJavaModule {

    public RNFSManager(ReactApplicationContext reactContext) {
      super(reactContext);
    }
    @ReactMethod
    public void openFile(String filepath,Callback callback) {
        try {
          File file = new File(filepath);
          MimeTypeMap myMime = MimeTypeMap.getSingleton();
          Intent newIntent = new Intent(Intent.ACTION_VIEW);
          String mimeType = myMime.getMimeTypeFromExtension(fileExt(filepath).substring(1));
          newIntent.setDataAndType(Uri.fromFile(file),mimeType);
          newIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
          Activity currentActivity = getCurrentActivity();
          if (currentActivity != null) {
            currentActivity.startActivity(newIntent);
          } else {
            this.getReactApplicationContext().startActivity(newIntent);
          }
        } catch (Exception ex) {
          ex.printstacktrace();
          callback.invoke(makeErrorPayload(ex));
        }
      }

但是当我构建它时,我收到此错误

.../android/src/main/java/com/rnfs/RNFSManager.java:138: error: cannot find symbol
      Activity currentActivity = getCurrentActivity();
                                     ^
  symbol: method getCurrentActivity()
1 error

我认为我在核心React Native repo中使用ReactContextBaseJavaModule的方式与此完全相同:

https://github.com/facebook/react-native/blob/235b16d93287061a09c4624e612b5dc4f960ce47/ReactAndroid/src/main/java/com/facebook/react/modules/intent/IntentModule.java

最佳答案
事实证明,react-native-fs在其构建过程中有自己的内部react-native依赖.因此,尽管整个应用程序都是基于本机v0.25做出反应,但是react-native-fs正在建立自己的反应本机v0.12,它没有我试图使用的API.这绝对是疯了.

原文地址:https://www.jb51.cc/android/430015.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐