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

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

概述我试图加载自定义AndroidWebView,以便能够使用html文件输入上传文件(默认情况下,Androidwebview不能使用输入文件).Imusingthiscode,唯一的区别是我使用expo工具包,所以我的MainApplication.java是不同的(默认情况下继承自另一个类):publicclassMainApplicationextendsM

我试图加载自定义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的屏幕时,我收到此错误:

总结问题是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

总结

以上是内存溢出为你收集整理的android – 使用expo工具包在native native中加载自定义本机组件全部内容,希望文章能够帮你解决android – 使用expo工具包在native native中加载自定义本机组件所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/web/1096780.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-05-28
下一篇2022-05-28

发表评论

登录后才能评论

评论列表(0条)

    保存