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

android – 使用expo工具包在native native中加载自定义本机组件

我试图加载自定义Android WebView,以便能够使用html文件输入上传文件(认情况下,Android webview不能使用输入文件). Im using this code,唯一的区别是我使用expo工具包,所以我的MainApplication.java是不同的(认情况下继承自另一个类):

public class MainApplication extends MultiDexApplication {

    // Needed for `react-native link`
    public List<ReactPackage> getPackages() {
      return Arrays.<ReactPackage>asList(
        new MainReactPackage(),
        new CustomWebViewPackage()
    );
  }

  @Override
  public void onCreate() {
      super.onCreate();
      SoLoader.init(this, /* native exopackage */ false);
  }
}

基本上git代码所做的是覆盖认的反应本机webview以使其在Android中使用CustomWebView.java,使用requireNativeComponent和此代码(this is on CustomWebView.android.js):

var RCTWebView = requireNativeComponent('CustomWebView', WebView, {
nativeOnly: {
    messagingEnabled: PropTypes.bool,
},

});

但是当我使用exp start运行应用程序并导航到具有CustomWebView的屏幕时,我收到此错误

enter image description here

总结问题是React Native没有读取我的自定义本机组件.有人能帮助我吗?

解决方法:

认情况下,Expo不支持任何自定义本机模块.这是因为它们只有一个perbuilt二进制文件,它们只加载你编写的JS包.因此,您使用Expo编写的任何代码都只能是纯Javascript.
但是,Expo文档确实说您可以在分离后添加自定义本机模块.
更多信息:

https://docs.expo.io/versions/latest/guides/detach.html#should-i-detach

https://docs.expo.io/versions/latest/introduction/faq.html#what-is-the-difference-between-expo-and-react-native

https://github.com/expo/expo/issues/56

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

相关推荐