gpt4 book ai didi

ios - react 原生 WebView (iOS) 中的 SVG 加载问题

转载 作者:行者123 更新时间:2023-12-01 16:12:24 27 4
gpt4 key购买 nike

使用的工具

D3 js: v4.11.0
react-native: v0.60.3
react-native-webview: v9.3.0

以前我用的是 react 原生 0.59.8 我正在使用 react-native 的 WebView,在这个版本中 WebView 工作正常,SVG 也加载完美,但是在将 react native 升级到 0.60.3 后,我还必须从 react-native-webview 获取 WebView,

react native WebView :-
<WebView
scrollEnabled = {true}
originWhitelist={["*"]}
javaScriptEnabled={true}
source={{ uri: isAndroid ? "file:///android_asset/widget/index.html" : "./widget/index.html" }}
// useWebKit={false}
allowUniversalAccessFromFileURLs={true}
allowFileAccess={true}
scalesPageToFit={true}
onMessage={this.getSelectedSeat}
ref={component => (this.webview = component)}
style={{ width: deviceWidth, height: deviceHeight }}/>

调用:
this.webview.postMessage("data");

在 HTML 中捕获:
this.window.addEventListener("message", data => {
}

在 HTML 中加载 SVG :-
function loadSVG(svgURL) {
d3.xml(
svgURL,
function (xml) {
if (xml != null) {
var importedFile = document.importNode(xml.documentElement, true);
d3.select("#layout")
.node()
.append(importedFile);
}
},
err => {
alert('error')
}
);
}

在 android 中,相同的代码运行良好,但在 iOS 中则不然,每次 xml 为空时,但在旧版本的 WebView 中运行良好,我从 react-native 获取 WebView,我不知道我错过了什么,可能是一些属性(property)。请帮忙。

更新:
我收到错误消息:{"isTrusted":true},我认为这是跨域相关问题,有没有办法在 iOS WKWebView 中禁用它?

最佳答案

iOS WKWebView 实际上在 WKWebViewConfiguration 中包含了这个配置键,所以这是一个简单的修复。我添加了这一行:

[wkWebViewConfig setValue:@TRUE forKey:@"allowUniversalAccessFromFileURLs"];
在文件 RNCWebView.m 的第 200 行中,使其工作(在添加到桥中的 react-native 共享 Prop 之后。)
来源: https://github.com/react-native-community/react-native-webview/issues/1290

关于ios - react 原生 WebView (iOS) 中的 SVG 加载问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61523598/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com