You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Objective-C实现React Native iOS自定义WebView提示UIManager找不到SecuredWebView如何解决

问题根因与修复方案

1. 原生组件导出名称与JS侧引用不匹配

你在SecuredWebViewManager.m中使用RCT_EXPORT_MODULE()默认导出的模块名为类名SecuredWebViewManager,但JS侧requireNativeComponent传入的组件名是SecuredWebView,二者不匹配导致找不到组件。
修复方案二选一:

  • 方案1:修改原生导出语句,指定导出名称为SecuredWebView
    将SecuredWebViewManager.m中的RCT_EXPORT_MODULE()改为RCT_EXPORT_MODULE(SecuredWebView)
  • 方案2:修改JS侧引用名称,将requireNativeComponent的第一个参数改为SecuredWebViewManager

2. 原生头文件导入错误

你当前导入的<React/RCTWebView.h>是React Native 0.60版本之前内置的旧版WebView头文件,目前WebView已经完全迁移到react-native-webview独立库中,旧的内置WebView已被移除,导入不存在的头文件会导致原生组件编译失败、无法注册。
修复方案:替换所有原生头文件导入

  • SecuredWebView.h中将#import <React/RCTWebView.h>改为#import <RNCWebView/RNCWebView.h>,同时父类从RCTWebView改为RNCWebView
  • SecuredWebViewManager.h中将#import <React/RCTWebViewManager.h>改为#import <RNCWebView/RNCWebViewManager.h>,同时父类从RCTWebViewManager改为RNCWebViewManager

3. JS侧缺失依赖导入

你的JS代码中使用了StyleSheet.create,但未从react-native中导入StyleSheet,会导致运行时报错。
修复方案:在JS侧import语句中加入StyleSheet导入:

import {
  NativeModules,
  requireNativeComponent,
  View,
  StyleSheet, // 新增该行
} from 'react-native';

4. 原生代码未编译生效

修改原生代码后需要重新执行以下操作才能生效:

  • 进入iOS目录执行pod install
  • 关闭当前运行的模拟器,重新在Xcode中编译运行项目,或者执行npx react-native run-ios重新打包启动

全部修改完成后重新运行即可解决报错问题。


内容的提问来源于stack exchange,提问作者LeoTonic

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.28 14:36:03