我有一个使用Google API的React + Electron应用程序,以进行身份验证并获取日历事件列表。
API脚本正在我的head
的{{1}}上加载,并在我的index.html
上初始化,如下所示:
App.js
在运行服务器的本地环境中,它完全可以正常工作,但是一旦构建了Electron应用程序并“本机”运行该应用程序,就会出现以下错误:// Initializes the API client library and sets up sign-in state listeners.
initClient() {
let gapi = window["gapi"];
let that = this;
gapi.load("client", start);
function start() {
gapi.client
.init({
apiKey: GOOGLE_API_KEY,
clientId: CLIENT_ID,
discoveryDocs: [
"https://www.googleapis.com/discovery/v1/apis/calendar/v3/rest"
],
scope: "https://www.googleapis.com/auth/calendar.readonly"
})
.then(() => {
gapi.auth2
.getAuthInstance()
.isSignedIn.listen(that.updateSigninStatus);
that.updateSigninStatus(
gapi.auth2.getAuthInstance().isSignedIn.get()
);
that.setState({
apiLoaded: true
});
});
}
}
我没有对API和服务器的高级理解来解决这个问题,但是通过研究,我发现关于API无法通过“ file://”协议运行的情况,在Electron应用程序中就是这种情况。
有什么想法吗?想法?