从本机0.59.10升级到0.60.5我们在构建Android时收到此错误:

/workspace/mobile-custom-webview/mobile-custom-webview/android/src/main/java/invisionapp/customwebview/CustomWebViewManager.java:27: error: package com.facebook.react.
views.webview does not exist
import com.facebook.react.views.webview.ReactWebViewManager;
                                       ^
/workspace/mobile-custom-webview/mobile-custom-webview/android/src/main/java/invisionapp/customwebview/CustomWebViewManager.java:36: error: cannot find symbol
public class CustomWebViewManager extends ReactWebViewManager {

根据文档创建自定义Web视图: https://facebook.github.io/react-native/docs/custom-webview-android : https://facebook.github.io/react-native/docs/custom-webview-android

摘自CustomeWebViewManager.java:

...
import com.facebook.react.views.webview.ReactWebViewManager;
import javax.annotation.Nullable;

import java.util.Map;

@ReactModule(name = CustomWebViewManager.REACT_CLASS)
public class CustomWebViewManager extends ReactWebViewManager {
...

React Native版本:

  info Fetching system and libraries information...
System:
    OS: macOS 10.14.6
    CPU: (8) x64 Intel(R) Core(TM) i7-7700HQ CPU @ 2.80GHz
    Memory: 37.35 MB / 16.00 GB
    Shell: 5.3 - /bin/zsh
  Binaries:
    Node: 8.16.1 - ~/.nvm/versions/node/v8.16.1/bin/node
    Yarn: 1.16.0 - /usr/local/bin/yarn
    npm: 6.4.1 - ~/.nvm/versions/node/v8.16.1/bin/npm
    Watchman: 4.9.0 - /usr/local/bin/watchman
  SDKs:
    iOS SDK:
      Platforms: iOS 12.1, macOS 10.14, tvOS 12.1, watchOS 5.1
    Android SDK:
      API Levels: 23, 24, 25, 26, 27, 28
      Build Tools: 23.0.1, 25.0.2, 25.0.3, 26.0.1, 26.0.2, 26.0.3, 27.0.3, 28.0.0, 28.0.0, 28.0.1, 28.0.2, 28.0.3
      System Images: android-25 | Google APIs Intel x86 Atom, android-25 | Google Play Intel x86 Atom, android-26 | Google APIs Intel x86 Atom, android-27 | Google APIs Intel x86 Atom, android-28 | Google APIs Intel x86 Atom
  IDEs:
    Android Studio: 3.4 AI-183.6156.11.34.5692245
    Xcode: 10.1/10B61 - /usr/bin/xcodebuild
  npmPackages:
    react: 16.8.6 => 16.8.6 
    react-native: 0.60.5 => 0.60.5

在package.json中,我们有:

 "dependencies": {
    "react": "16.8.6",
    "react-native": "0.60.5",
    "react-native-webview": "6.8.0"
  },

重现步骤

  1. 按照文档创建一个Android CustomWebView: https://facebook.github.io/react-native/docs/custom-webview-android : https://facebook.github.io/react-native/docs/custom-webview-android
  2. 尝试通过执行react-native run-android来构建Android

描述您期望发生的事情:Android应用应像以前一样构建和运行(0.59.10)

0.60 react-native doc页面: doc页面

#1楼 票数:0 已采纳

我们能够解决此问题。 这里有一些提示:

  • 请仔细阅读自动链接文档!
  • 如果它是一个独立的模块(像我们这样),那么您需要将react-native-webview包含在:模块的build.gradle
implementation project(":react-native-webview")

并在使用应用程序的settings.gradle

include ':react-native-webview'
project(':react-native-webview').projectDir = new File(rootProject.projectDir, '../node_modules/react-native-webview/android')

即使在使用中的应用中,它也应该是自动链接的。

同样,您需要在使用的应用程序中添加一个名为react-native.config.js的文件:

const path = require('path');

  module.exports = {
   dependencies: {
     'mobile-custom-webview': {
       root: path.resolve('../mobile-custom-webview'),
     },
   },
 };

在定义CustomWebView的Java文件中:替换:

import com.reactnativecommunity.webview.RNCWebViewPackage;

import com.reactnativecommunity.webview.RNCWebViewManager;

最后,一些方法具有不同的签名,例如:ReactWebView-> RNCWebView

  ask by dudeinthemirror translate from so

未解决问题?本站智能推荐:

1回复

使用 react-native-webview 的 stopLoading 后 Webview 冻结

我想在 React Native Webview 中打开一个网页,并在默认浏览器中打开 hrefs(链接)。 我尝试使用 Webview 的 stopLoading 方法,但它冻结了视图。 我使用此线程上的答案成功地实现了这一点。 react-native-webview的stopLoading
1回复

使用 React Native WebView 获取“源:错误”

我正在尝试使用以下代码通过 POST 方法在 React Native WebView 中加载屏幕: 它向我的屏幕输出以下错误: 当我记录传递给body的值时,它输出hpp_id=4TP6Htore3&hpp_preload&ticket=hpp1572015949qD9N
0回复

react-native-webview 不适用于 android (RN 0.60.5)

我创建了新的 react-native 应用程序(react native 版本 0.60.5 并添加 react-native-webview。应用程序适用于 iOS。但在 Android 上不起作用。 react-native init WebViewApp cd WebViewApp ya
1回复

在 Android 项目上工作,未找到 RNCWebView 错误

我正在和我的朋友 windows 10 一起开发一个 gitlab 项目,我已经从 master 那里拉出来了,我必须解决的冲突很少,但是当我使用npx react-native start运行我的 android 项目时,我做了npm install然后从 android studio 我通过转到
2回复

React Native Webview - 即使在通过状态更新后也打开相同的 URL

我面临问题 react-native-webview 。 问题就像打开应用程序初始我已将 URL 设置为状态,但是当新 URL 从推送通知中出现时,即使在更新状态后它也不会更新 webview。 如果有人有相同的解决方案,请帮助我。
1回复

加载后如何延迟 Webview 页面的警报?

我有以下几点: runAfterTenSecs当前未使用。 我可以对其或runFirst进行哪些更改,以产生预期的结果,即在 Webview 加载十秒后警告“您已经在此页面上停留了 10 秒”?
1回复

在Webview中完成工作后如何重定向到页面?

我正在与另一个政党系统合作。 当我发送请求时,他们向我提供了一个URL。 我在webview中加载。 无法访问该webview。 在Webview中完成工作后,我想自动转到另一个屏幕。 有什么办法吗?
2回复

React Native - 在导航到/从包含嵌入在其自己的 WebView 中的多条推文的页面导航后取消引用空指针

我目前为工作而构建的应用程序主要侧重于显示文章。 其中一些包含 Twitter 嵌入(在网络版本上),并且由于 API 由我们的两个应用程序共享,因此我也收到了作为 HTML 的嵌入。 每当我尝试在源设置为 HTML 的 WebView 中显示推文和用于样式的 Twitter JS 脚本时,页面要么