React-Native :: WebView :: Некоторые пустые страницы без видимого шаблона - PullRequest
0 голосов
/ 24 сентября 2018

[] EDIT: При третьей перезагрузке моего Mac самопроизвольное устранение проблемы, не устраненной двумя предыдущими перезагрузками.Так что, если кто-то сталкивается с этой проблемой, просто продолжайте перезагрузку, пока она не заработает.эмулируемое устройство, но в нашем компоненте <WebView /> отображаются только некоторые веб-сайты, и сообщения об ошибках отсутствуют до истечения времени ожидания (которое занимает некоторое время), после чего «О, нет!»и объект Proxy регистрируется с сообщением Yellowbox.

У меня нет прямого контроля над кодом Android (Java), но любые потенциальные решения, требующие изменений в этой части проекта, также приветствуются.

И когда при загрузке страницы происходит сбой в сети A, результат, видимый в React-Native-Debugger, равен:

Encountered an error loading page
{
    "canGoForward": false,
    "code": -2,
    "canGoBack": false,
    "description": "net::ERR_NAME_NOT_RESOLVED",
    "loading": false,
    "title": "",
    "url": "https://www.stallman.org",
    "target": 2
}

И оба "запускаются!"и "окончание!"журналы консоли запускаются.

В сети B Yellowbox никогда не появляется, а "запускается!"сообщение горит, но не "конец!"сообщение, даже после ожидания в течение полных 5 минут.

* * * Моя догадка (основываясь на некоторых других взглядах на проблему) заключается в том, что эта проблема связана с неправильной обработкой перенаправлений. * * *

У кого-нибудь есть идеи, как решить эту проблему и что может быть в корне?

Спасибо.


Сведения об эмуляторе Android:

Name: Nexus_5X_API_23

CPU/ABI: Google APIs Intel Atom (x86_64)

Path: /Users/$USER/.android/avd/Nexus_5X_API_23.avd // $USER = user

Target: google_apis [Google APIs] (API level 23)

Skin: nexus_5x

SD Card: 100M

hw.dPad: no

hw.lcd.height: 1920

runtime.network.speed: full

hw.accelerometer: yes

hw.device.name: Nexus 5X

vm.heapSize: 256

skin.dynamic: yes

hw.device.manufacturer: Google

hw.lcd.width: 1080

hw.gps: yes

hw.initialOrientation: Portrait

image.androidVersion.api: 23

hw.audioInput: yes

image.sysdir.1: system-images/android-23/google_apis/x86_64/

tag.id: google_apis

showDeviceFrame: yes

hw.camera.back: virtualscene

hw.mainKeys: no

AvdId: Nexus_5X_API_23

hw.camera.front: emulated

hw.lcd.density: 420

avd.ini.displayname: Nexus 5X API 23

hw.arc: false

hw.gpu.mode: auto

hw.device.hash2: MD5:bc5032b2a871da511332401af3ac6bb0

hw.ramSize: 1536

hw.trackBall: no

PlayStore.enabled: false

fastboot.forceColdBoot: no

hw.battery: yes

hw.cpu.ncore: 4

hw.sdCard: yes

tag.display: Google APIs

runtime.network.latency: none

hw.keyboard: yes

hw.sensors.proximity: yes

disk.dataPartition.size: 800M

hw.sensors.orientation: yes

avd.ini.encoding: UTF-8

hw.gpu.enabled: yes

Сведения о проекте:

  "dependencies": {
    "@types/react-redux": "^6.0.6",
    "bind": "^0.1.7",
    "deep-freeze": "0.0.1",
    "i18next": "^11.6.0",
    "prop-types": "^15.6.2",
    "react-i18next": "^7.11.0",
    "react-redux": "^5.0.7",
    "redux": "^4.0.0",
    "redux-thunk": "^2.3.0"
  },
  "peerDependencies": {
    "react": "16.0.0",
    "react-native": "0.51.0",
    "react-native-svg": "^6.4.1",
    "react-native-svg-loader": "^0.1.5",
    "svgs": "^3.2.1"
  },

(урезано) Код компонента:

import * as React from 'react';
import { Component } from 'react';
import { WebViewUriSource } from 'react-native';
import { Text, View, WebView } from 'react-native';

import { WebViewProps } from '../prop-types';

export class WebViewComponent extends Component<WebViewProps, {}> {
    public onMessage = (event) => {
        console.log(event);
    }

    public render () {
        const jsCode = 'console.log("Hello World!")';

        return (
            <WebView
                source={{ uri: 'https://www.stallman.org' }}
                onLoadStart={() => console.log('starting!')}
                onLoadEnd={() => console.log('ending!')}
                style={{ flex: 1 }}
                javaScriptEnabled={true}
                mixedContentMode={'always'}
                domStorageEnabled={true}
                scalesPageToFit={true}
                onMessage={this.onMessage}
                injectedJavaScript={jsCode}
                onError={(x) => console.log('Oh no!', x)}
                renderError={() => {
                    return (
                        <View style={{ flex: 1 }}>
                            <Text>
                                Some Error Happened
                            </Text>
                        </View>);
                }}
            />
        );
    }
}

Реквизит передан <WebView /> в значительной степени присутствуют в результате моих предыдущих поисков документации, проблем с Github и других статей SO.Пока что никто не решил проблему.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...