【问题标题】:An alternative way to deal with UIWebView (and Apple Store warnings) in react-native < 0.60在 react-native < 0.60 中处理 UIWebView(和 Apple Store 警告)的另一种方法
【发布时间】:2020-09-11 08:31:16
【问题描述】:

我有一个我无法解决的问题:我正在做一个必须使用这个 react 和 react-native 版本的开发

npm 包: 反应:16.8.3 => 16.8.3 反应原生:0.59.9 => 0.59.9

为避免在 Apple Store 中手动出现警告,这就像一个魅力: https://docs.google.com/document/d/1o-wTwf1R8606wF8VloGxccjOIdTmJC0hSYysFgasQ7g/edit

但我无法以编程方式进行 https://www.gitmemory.com/issue/react-native-community/react-native-webview/819/532829030 https://github.com/react-native-community/react-native-webview/issues/819

作为替代选项,直到我可以使用正确版本的 react-native ... 谁能告诉我是否可以在没有 UIWebView 库的情况下生成我自己的 react-native 实现?这可能吗?

我的意思是,我无法在 post_install 执行 pod install 中“清理” UIWebView。我想做一个 npm install 但没有 UIWebView 库,并使用自定义的 react-native 0.59.9 实现。

非常感谢您的提前和问候。

更新

是否可以在 package.json 文件中定义一个文件夹?类似的东西

"dependencies": {
    "@lingui/react": "^2.7.4",
    "@react-native-community/async-storage": "^1.2.1",
    "axios": "^0.18.0",
    "base-64": "^0.1.0",
    "expo": "^27.1.1",
    "intl": "^1.2.5",
    "jwt-decode": "^2.2.0",
    "lodash": "^4.17.11",
    "lottie-react-native": "^2.6.0",
    "moment": "^2.24.0",
    "react": "16.8.3",
    "react-intl": "^2.8.0",
    **"react-native": "mypath/my_0.59.9_react-native",**

PS这是我第一次参加Stackoverflow(虽然我已经进入了数百万次),希望我提出的问题是正确的。

【问题讨论】:

  • 有一个关于 react-native-webview 问题的有趣讨论。当我遇到同样的问题时,我曾经关注它,但我设法将我的 RN 版本升级到 0.60。所以我不确定你最好的选择是什么。但是此链接将显示摆脱此问题的最佳方法。祝你好运。 github.com/react-native-community/react-native-webview/issues/…
  • 我想我知道那个线程是靠记忆 :-) 甚至隐藏的 cmets。只有在 post_install 级别给出了解决方案,这是我无法开始工作的。所以我想知道如果可能并以合理的方式“隧道”一个版本的 react-native。
  • 那我不知道如何解决这个问题。但是我建议您将您的项目升级到 0.61 之后的某个版本,因为这对您有很多好处。我只用了 1 或 2 个小时就升级了我的所有包并做出原生反应以从 0.59.10 使用 0.61.2。顺便说一句,我的项目很大:)

标签: react-native npm cocoapods npm-install


【解决方案1】:

是的,你可以,我已经使用 patch-package 使用 react-native 0.59.8 完成了它。

你需要做的是:

  1. 按照说明在您的项目中安装补丁包。
  2. 修改 react native Objective-c 代码,移除 UIWebView(0.59.8 时我只是简单地删除了 RCTWebView.h、RCTWebView.m、RCTWebViewManager.h 和 RCTWebViewManager.m 的内容)。
  3. 运行补丁包实用程序以创建补丁并将其提交到您的存储库。

例如,这里是我为react-native 0.59.8创建的补丁

干杯!

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-12-22
    • 1970-01-01
    • 2020-08-18
    • 2019-11-20
    • 1970-01-01
    相关资源
    最近更新 更多