Android react-native-webview 之前是正常的, 升级了 react-native
/ react-native-webview
等 之后, 就变成了空白页.
通过下面的修改, 可以修复, 回到正常的状态.
来源: https://github.com/react-native-webview/react-native-webview/issues/3697
注意 ts
文件一定要改, 至关重要
index ff2cba5f710988acafe9dbc42ca814ea8622d8c3..47f37776e63eacfae8d41dd5c1adff51e317366d 100644
--- a/android/src/newarch/com/reactnativecommunity/webview/RNCWebViewManager.java
+++ b/android/src/newarch/com/reactnativecommunity/webview/RNCWebViewManager.java
@@ -313,6 +313,12 @@ public class RNCWebViewManager extends ViewGroupManager<RNCWebViewWrapper>
mRNCWebViewManagerImpl.setSource(view, value);
}
+ @Override
+ @ReactProp(name = "source")
+ public void setSource(RNCWebViewWrapper view, @Nullable ReadableMap value) {
+ mRNCWebViewManagerImpl.setSource(view, value);
+ }
+
@Override
@ReactProp(name = "textZoom")
public void setTextZoom(RNCWebViewWrapper view, int value) {
diff --git a/src/RNCWebViewNativeComponent.ts b/src/RNCWebViewNativeComponent.ts
index e2ddd361e1e2cb647bee370146b0ed020fb9fd02..39c8d3ec15cf878af0858a0abbb138982182cfe1 100644
--- a/src/RNCWebViewNativeComponent.ts
+++ b/src/RNCWebViewNativeComponent.ts
@@ -287,6 +287,15 @@ export interface NativeProps extends ViewProps {
html?: string;
baseUrl?: string;
}>;
+ source: Readonly<{
+ uri?: string;
+ method?: string;
+ body?: string;
+
+ headers?: ReadonlyArray<Readonly<{ name: string; value: string }>>;
+ html?: string;
+ baseUrl?: string;
+ }>;
userAgent?: string;
injectedJavaScriptObject?: string;
}
如果有错误:
FAILURE: Build failed with an exception.
* What went wrong:
Execution failed for task ':react-native-webview:compileReleaseJavaWithJavac'.
> Compilation failed; see the compiler output below.
/Users/xxx/projects/xxxxx/node_modules/react-native-webview/android/src/newarch/com/reactnativecommunity/webview/RNCWebViewManager.java:36: 错误: RNCWebViewManager不是抽象的, 并且未覆盖RNCWebViewManagerInterface中的抽象方法setSource(RNCWebViewWrapper,ReadableMap)
public class RNCWebViewManager extends ViewGroupManager<RNCWebViewWrapper>
^
注: 某些输入文件使用或覆盖了已过时的 API。
注: 有关详细信息, 请使用 -Xlint:deprecation 重新编译。
1 个错误
* Try:
> Check your code and dependencies to fix the compilation error(s)
> Run with --scan to get full insights.
修改以下代码:
// @Override
@ReactProp(name = "source")
public void setSource(RNCWebViewWrapper view, @Nullable ReadableMap value) {
mRNCWebViewManagerImpl.setSource(view, value);
}
把 @Override
注释了