问题是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
}}}