【问题标题】:How to use Electron's <webview> within Angular2 app?如何在 Angular2 应用程序中使用 Electron 的 <webview>?
【发布时间】:2016-10-14 02:06:49
【问题描述】:

我尝试在我的 Angular2 应用程序中使用 Electon's webview tag,但是当我添加绑定到 Angular2 变量的 src 属性时,出现以下错误:

Can't bind to 'src' since it isn't a known native property

这是 index.html:

<head>
    <!-- cut out stylings, metatags, etc. -->
    <script src="../node_modules/zone.js/dist/zone.js"></script>
    <script src="../node_modules/reflect-metadata/Reflect.js"></script>
    <script src="../node_modules/systemjs/dist/system.src.js"></script>
    <script src="systemjs.config.js"></script>
    <script>
        const electron = require('electron');
        System.import('app').catch(function(err){ console.error(err); });
    </script>
</head>
<body>
    <MainComponent>Loading...</MainComponent>
</body>

这是systemjs.config.js:

(function(global) {
// map tells the System loader where to look for things
var map = {
    'app':                        'angular',
    '@angular':                   '../node_modules/@angular',
    'angular2-in-memory-web-api': '../node_modules/angular2-in-memory-web-api',
    'rxjs':                       '../node_modules/rxjs'
};
// packages tells the System loader how to load when no filename and/or no extension
var packages = {
    'app':                        { main: 'main.js',  defaultExtension: 'js' },
    'rxjs':                       { defaultExtension: 'js' },
    'angular2-in-memory-web-api': { defaultExtension: 'js' }
};
var ngPackageNames = [
    'common',
    'compiler',
    'core',
    'http',
    'platform-browser',
    'platform-browser-dynamic',
    'router',
    'router-deprecated',
    'upgrade'
];
// Add package entries for angular packages
ngPackageNames.forEach(function(pkgName) {
    packages['@angular/'+pkgName] = { main: pkgName + '.umd.js', defaultExtension: 'js' };
});
var config = {
    map: map,
    packages: packages
};
System.config(config);
})(this);

这是我(想)在其中使用 webview 的 Angular2 组件模板:

<div class="stage-component component">
    <webview *ngIf="iFrameUrl" src="{{iFrameUrl}}"></webview>
</div>

如何将 webview 元素引入 Angular2?

【问题讨论】:

  • 您能否提供您的 html 的 sn-p、电子版本以及您的运行方式?
  • 我确实更新了我的问题详情。

标签: webview angular attributes electron systemjs


【解决方案1】:

这很奇怪。听起来你可能有版本问题。您可以尝试改用loadUrl api,看看是否有帮助。

<script>
  onload = () => {
    const webview = document.getElementById('foo');
    webview.loadUrl('http://example.com')
</script>

【讨论】:

  • 我很确定,这可行,但 webview 必须是我的 Angular2 应用程序的一部分 :-(
【解决方案2】:

如果出现这种情况,请在前面使用“attr”。

<webview *ngIf="iFrameUrl" attr.src="{{iFrameUrl}}"></webview>

【讨论】:

  • 我正在尝试使用 src="{{iFrameurl}}" 但它没有用。谢谢你!
猜你喜欢
  • 1970-01-01
  • 2017-03-09
  • 2017-09-14
  • 2016-12-12
  • 1970-01-01
  • 2015-09-12
  • 1970-01-01
  • 2017-03-01
  • 2023-03-26
相关资源
最近更新 更多