Используемые инструменты
D3 js: v4.11.0
react-native: v0.60.3
react-native-webview: v9.3.0
Ранее я использовал act-native 0.59.8 , и в этой версии WebView я использовал WebView из Reaction-native, работал нормально, SVG также отлично загружался, но после обновления рэка родного до 0.60.3 мне также пришлось взять 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 => {
}
Загрузка SVG в HTML: -
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, где я брал WebView из реактивного типа, я не знаю, что я отсутствует, может быть какая-то собственность. Пожалуйста, помогите.
Обновление: я получаю сообщение об ошибке: {"isTrusted": true}, я думаю, что это проблема, связанная с перекрестным происхождением, есть ли способ отключить это в iOS WKWebView?