Реагировать на родной WebView застревает в загрузке осыпи. в основном он не выполняет onloadingstart .. и onloadingfinished. Это происходит произвольно - PullRequest
0 голосов
/ 29 августа 2018

Проблема заключается в том, что WebView исходный объект имеет строку html, которую он должен отображать после отображения индикатора загрузки. Но иногда это не показывает HTML. Снятие индикатора загрузки вообще ничего не показывает.

После отладки я обнаружил, что это условие ниже предотвращает вызов метода webViewDidFinishLoad(). Я прокомментировал сейчас (я не знаю obj C) и отлаживаю, чтобы увидеть, если что-то ломается .. если кто-то знает, что происходит, пожалуйста, помогите мне.

Он вернется, и обработчики загрузки не будут работать вообще.

// file - RCTWebView.m:222
if (!isJSNavigation && _onShouldStartLoadWithRequest) {
    RCTLogWarn(@"When this condition is true load method is not called");
    NSMutableDictionary<NSString *, id> *event = [self baseEvent];
        [event addEntriesFromDictionary: @{
        @"url": (request.URL).absoluteString,
        @"navigationType": navigationTypes[@(navigationType)]
    }];
    //  if (![self.delegate webView:self
    //     shouldStartLoadForRequest:event
    //                  withCallback:_onShouldStartLoadWithRequest]) {
    //                    RCTLogWarn(@"SIm waiting for the 1 2 2");
    //     return NO;
    //  }
}

this-rn-github-issue утверждает, что решено, но для меня это не решено. У меня 0.56 RN и тестирование на iOS

Использование:

<WebView
    injectedJavaScript={'(' + String(injectedScript) + ')();'}
    ref={ref => {
        this.webview = ref;
    }}
    onNavigationStateChange={this.onClick.bind(this)}
    onMessage={this.onMessage}
    scrollEnabled={scrollEnabled}
    javaScriptEnabled
    automaticallyAdjustContentInsets
    {...this.props}
    style={[{ width: _w }, this.props.style, { height: _h }]}
/>

this.props= {source={{ html: content }}
            startInLoadingState={true}
            style={{
                left: 6,
                width: DeviceDimensions.width
            }}}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...