4

我的 Expo App 的 WebViewScreen 代码:

import React from 'react';
import { WebView } from 'react-native-webview';

export default WebViewScreen = () => (
    <WebView
        originWhitelist={['*']}
        source={{ uri: 'https://www.google.com' }}
    />
);

但是当我运行它时,我收到以下错误:

Encountered an error loading page, Object {
  "canGoBack": false,
  "canGoForward": false,
  "code": -1,
  "description": "net::ERR_CACHE_MISS",
  "loading": false,
  "target": 3,
  "title": "Web page not available",
  "url": "https://www.google.com/",
}

注意:
我的 Android 手机已连接到 wifi,并且我几乎可以在我的 Expo 应用程序的每个屏幕上使用后端服务器 API,这确认可以访问互联网并且我的应用程序有权使用 internet

我的环境:
Android 三星手机(Android 版本 5.1.1),
EXPO SDK 版本为 36,
react-native-webview版本 8.0.6,
Expo 客户端应用程序版本 2.14.0

PS:
对于react-native-webview
我没有这样做npm install --save react-native-webview
而是expo install react-native-webview使用expo-cli版本 3.11.7

PPS:我尝试在手机上通过二维码扫描从这里(官方?)运行 webview 的博览会小吃,但得到了同样的错误("code": -1

有人可以指导如何摆脱这个错误并让 webview 启动并运行吗?

4

2 回答 2

0

您是否在清单中设置了正确的权限?

<uses-permission android:name="android.permission.INTERNET"/>

在您的情况下,它应该是 App.json 文件

于 2020-02-06T22:10:26.357 回答
0

您是否尝试过此处发布的临时修复?

他们说网站服务人员可能存在问题(由于 Chrome 75 中的错误)。

解决方案包括将此 JS 脚本注入到WebView, 以取消注册停滞的服务人员:

navigator.serviceWorker.getRegistrations().then(function(registrations) {
    for (let registration of registrations) {
        registration.unregister();
    }
});
于 2020-02-12T19:47:24.727 回答