我是一名有用的助手,可以为您翻译文本。
所以我有一个完成的Angular 5应用程序,我想将其转换为Electron应用程序。我已经让应用程序中的所有内容像Web应用程序一样工作,除了一个问题。我无法想出如何将Routes加载到新的BrowserWindow中。以下是我正在使用和尝试过的内容:
我使用以下代码加载mainWindow:
现在,我希望将联系人页面从主窗口导航改为通过主窗口打开第二个窗口中的联系人页面:
这导致出现以下错误信息:
所以我有一个完成的Angular 5应用程序,我想将其转换为Electron应用程序。我已经让应用程序中的所有内容像Web应用程序一样工作,除了一个问题。我无法想出如何将Routes加载到新的BrowserWindow中。以下是我正在使用和尝试过的内容:
我使用以下代码加载mainWindow:
mainWindow.loadURL(url.format({
pathname: path.join(__dirname, 'dist/index.html'),
protocol: 'file:',
slashes: true
}));
我成功地通过mainWindow中的routerLink导航到联系人,并获得了以下结果:
console.log(mainWindow.webContents.getURL()); = file:///C:/Me/Project/dist/contact
现在,我希望将联系人页面从主窗口导航改为通过主窗口打开第二个窗口中的联系人页面:
index.html:
<base href="./">
app.routes.ts:
export const routes: Routes = [{
path: 'contact', data: { sectionTitle: 'Contact' },
loadChildren: 'contact/contact.module#ContactModule'
}]
@NgModule({
imports: [
RouterModule.forRoot(routes, { useHash: false })
],
exports: [RouterModule],
declarations: [],
providers: [],
})
export class AppRoutingModule { }
main.js:
secondWindow = new BrowserWindow({
parent: mainWindow,
width: 1024,
height: 768,
frame: false,
minWidth: 1024,
minHeight: 768,
show: false
});
secondWindow.loadURL('file://' + __dirname + 'dist/contact');
secondWindow.show();
这导致出现以下错误信息:
Not allowed to load local resource: file:///C:/Me/Project/dist/contact
我尝试过以下方法,但都没有成功(包括使用哈希路由并设置 useHash: true):
secondWindow.loadURL('file://' + __dirname + '/dist/contact');
secondWindow.loadURL('file:' + __dirname + '/dist/contact');
secondWindow.loadURL('file:' + __dirname + 'dist/contact');
secondWindow.loadURL('file:' + __dirname + 'dist/index.html#/contact');
有什么想法吗?这是阻碍发布这个Electron应用的唯一障碍。
file:///C:\full-path\app-root\dist\index.html#/contact
。看起来不太对。 - RockGuitarist1file:///C:\Users\tim\Documents\Repos\AppName\index.html
。 - Tim