【发布时间】:2017-04-07 08:22:32
【问题描述】:
我正在尝试在我的 React Native 项目的 WebView 中包含一个外部 JavaScript 文件。我希望包含的文件是在npm 上不可用的第三方库,用纯 JavaScript(没有 ES5 或更高版本)编写。我需要一个解决方案,将我的 JS 文件注入到 React Native 项目的 WebView 中,而无需导入它或使其成为 npm 模块。
我尝试了以下方法,但目前没有任何效果:
- 我曾尝试像这样加载脚本:Insert script tag
- 我已经尝试在
injectedJavaScript中动态加载脚本,这里的答案是:Link JS file from a JS file
这是我的外部AppGeneral.js:
function AppGeneral(){
alert("Ok");
}
var app = new AppGeneral();
这是我的index.ios.js 文件:
export default class sampleReactApp extends Component {
render() {
let HTML = `
<html>
<head>
<script type="text/javascript" src="js/AppGeneral.js"></script>
</head>
<body>
<div id="workbookControl"></div>
<div id="tableeditor">editor goes here</div>
<div id="msg" onclick="this.innerHTML=' ';"></div>
</body>
</html>
`;
let jsCode = `
alert("Js");
`;
return (
<View style={styles.container}>
<WebView
style={styles.webView}
ref="myWebView"
source={{ html: HTML }}
injectedJavaScript={jsCode}
javaScriptEnabledAndroid={true}
>
</WebView>
</View>
);
}
}
【问题讨论】:
-
为什么要使用webview来执行代码?
-
@MartinCup 我的 JS 文件是一个 JS 电子表格引擎。将整个库转换为模块,然后在导入语句中使用它不是最佳解决方案。因此,我想包含这个文件,因为它是在基于 cordova 的应用程序中完成的,即在 web 视图中。请提出最佳方法。