nw.js:Webテクノロジーを使用したネイティブアプリケーションを構築するためのフレームワーク
nw.jsは、開発者がHTML、JavaScript、CSSなどのWebテクノロジーを使用してネイティブアプリケーションを作成して、通常のWebアプリケーションよりも大きな利点を持つハイブリッドアプリケーションを生成できる強力なフレームワークです。
別のハイブリッドアプリケーションフレームワークと比較して、電子、NW.JSには次の利点があります。* API、Chromeアプリケーション、NACLおよびPNACLアプリケーション、V8スナップショットソースコード保護、ビルトインPDFビューア、印刷プレビュー、 node.jsをWebワーカーに統合します。NW.JSを使用してハイブリッドアプリケーションを作成するプロセスには、プロジェクト構造のセットアップ、マニフェストファイルの作成、メインビューの作成が含まれます。 GitHubのサンプルアプリケーションを参照できます。
nw.jsは、それぞれ
およびnw
パッケージを使用して開発および作成およびインストールできます。 NPMスクリプトをnw-builder
ファイルに追加することにより、パッケージングと配布プロセスを簡素化できます。 package.json
NW.JSはChromiumに基づいているため、NW.JSアプリケーションのテストとデバッグは手動で実行できます。自動化されたユニットテストは、KarmaのNW.JSランチャープラグイン(Karma-Nodewebkit-Launcherなど)を使用して実装できます。
この記事は、Tim SeverienとJoan Yinによってレビューされました。 SetePointのコンテンツを完璧にしてくれたSetePointのすべてのピアレビューアに感謝します!
nw.jsは、HTML、JavaScript、CSSなどのWebテクノロジーを使用してネイティブアプリケーションを作成するためのフレームワークです。簡単に言えば、通常のプロセスを使用してWebアプリケーションを開発します。プロセスの最後に、すべてをネイティブアプリケーションにコンパイルするジェネレーターを実行し、アプリケーションはブラウザのようにWebアプリケーションを表示します。これらのアプリケーションは「ハイブリッドアプリケーション」と呼ばれます。
ハイブリッドアプリケーションは、既によく知っている言語(HTML、JavaScript、およびCSS)で書かれているだけでなく、通常のWebアプリケーションよりも次の重要な利点があるためにも優れています。
ブラウザとブラウザのバージョンの制御(アプリケーションが呼び出されるブラウザがわかっています)。 NW.JSハイブリッドアプリケーションは、Chromium(Google Chromeの背後にあるオープンソースブラウザ)を使用して表示されます。したがって、Chromeで実行されているアプリケーションもNW.JSで実行する必要があります。
- ビューポートコントロール。たとえば、固定または最小/最大のビューポートを定義できます。
- ローカルファイルのため、同様のポリシーの制限はありません。ファイルシステムからローカルファイルを開くと、ブラウザは同じディレクトリにないファイルのXMLHTTPREQUEST要求をブロックします。この動作は、NW.JSアプリケーションで無効にすることができます。
- また、カスタムAPIも提供しているため、次の利点があります。
- node.js Integration
- クリップボードアクセス
- ファイルシステムへのアクセス
- ハードウェアアクセス(たとえば、プリンターリストを取得します)
- パレットアイコン
- カスタムファイルセレクターダイアログボックス
- シェル統合(デフォルトのファイルブラウザまたはブラウザでファイルまたはURLを開く) ウィンドウ全体(ボタン、メニューバーを閉じる)およびコンテキストメニューをカスタマイズするためのオプション
- ズームレベルを設定して取得する機能。
- NACL(ネイティブクライアント)およびPNACL(ポータブルネイティブクライアント)アプリケーションをサポートします。彼らはパフォーマンスに焦点を当てているので、主にCとCで書かれています(nw.jsでそれらの使用方法については、このチュートリアルを参照してください)
- アプリケーションのソースコードを保護するためのV8スナップショットソースコード保護があります。 NWJCツールを使用すると、コードがネイティブコードにコンパイルされます。 (詳細については、この記事を参照してください。)
- 内蔵のPDFビューアーがあります。
- プレビューを印刷してください。
- Webワーカーのnode.jsの統合をサポートしています。マルチスレッドアプリケーションの作成に使用されます。
- しかし、電子には言及する価値のあるいくつかの利点もあります:
- 別の根本的な違いがあります。 NW.JSアプリケーションHTMLファイルとしてエントリポイントを指定します。このHTMLファイルは、GUIで直接開かれます。 一方、電子アプリケーションは、そのエントリポイントとしてJavaScriptファイルを指定します。このJavaScriptファイルは別のメインプロセスで開かれ、HTMLファイルをGUIで開くことができます。これは、理論的にはGUIなしで電子アプリケーションを実行できることを意味します。また、GUIを閉じると、APIメソッドを呼び出すことで手動で終了する必要があります。
電子と比較したnw.jsの利点
まず第一に、1つのことは次のとおりです。NW.JSは、ハイブリッドアプリケーションの唯一のフレームワークではありません。別の競合他社は電子と呼ばれます。 2013年にNW.JSに2年遅れて発売されましたが、GitHubから来たためすぐによく知られてきました。今、あなたはそれらの違いに興味があるかもしれません。電子と比較したNW.JSの利点は次のとおりです。
サポートChrome。* API。これらのAPIは、ブラウザとの対話に使用できます。 (NW.JSのドキュメントで、より多くの関連情報を見つけることができます。)
- クロムアプリをサポートします。 Chromeアプリは、Web言語で記述されたパッケージ化されたアプリケーションです。 (詳細については、Chrome開発者のドキュメントを参照してください。)これらのアプリケーションは、node.js統合がなく、Chrome Webストアを使用して公開されているため、NW.JSとは異なります。 (Chromiumは2018年8月までにサポートをキャンセルします(ブログ投稿を参照)。しかし、この投稿によると、NW.JSは引き続きChromeアプリをサポートします。)
組み込み自動更新プログラム(NW.JS自動更新プログラムに関する質問に従うことができます)。
- リモートサーバーにクラッシュレポートを自動的に送信します。 NW.JSはローカルファイルにのみ書き込み、その後、手動で提出できます。
javascriptで書かれたデスクトップアプリケーションのドアをElectronが開きますが、GUIなしでは、HTMLベースのアプリケーションを表示するだけではNW.JSアプリケーションがセットアップしやすい場合があります。
注:電子の利点が本当に気に入っている場合は、電子を使用したデスクトップアプリケーションの作成に関するSitePointの最近の記事をご覧ください。
デモアプリケーションを作成します
後でネイティブアプリケーションにコンパイルされるアプリケーションの作成を開始しましょう。さまざまなJS言語(TypeScript、coffeescriptなど)、モジュールローダー(requirejs、webpack、systemjsなど)を使用して、Webアプリケーションをセットアップする方法がたくさんあるため、Frameworks(Angularjs、React、vue.js、など)およびプリプロセッサ(SCS、LESS、HAMLなど) - そして誰もが独自の好みを持っています。基本的なHTML、CSS、およびJS(ES6標準)テクノロジーのみを使用します。
任意の設定にnw.jsボイラープレート(開始プロジェクト)はありません。これらはすべて、特定のフレームワーク、モジュールローダー、またはプリプロセッサ用に構築されています。そのため、簡単なNW.JSアプリケーションをゼロから実装します。理解しやすく、後でニーズに合わせて簡単にカスタマイズしたり、ボイラープレートに切り替えることができます。
プロジェクト構造
最初に、プロジェクト構造とファイルを作成する必要があります:
<code>nw.js-example/ ├── src/ │ ├── app/ │ │ └── main.js │ ├── assets/ │ │ └── icon.png │ ├── styles/ │ │ └── common.css │ ├── views/ │ │ └── main.html │ └── package.json └── package.json</code>
指示:
- src/は、アプリケーションのソースファイルを含みます。
- src/ app/ javascriptファイルが含まれています。
- SRC/ ASSETS/ INCAMES IMAGES。この例では、ファイルicon.png(ウィンドウアイコンとして表示される)のみが正方形である必要があります。
- src/ styles/ scss以下のファイルが含まれています。この例では、単純なCSSファイルです。
- src/ views/ contable htmlビューファイル。
- src/package.jsonは、nw.jsアプリケーションのマニフェストファイルです(マニフェスト形式を参照)。また、ここでアプリケーションの依存関係を指定します。
- package.jsonは、ビルドワークフローを実行し、実際のNW.JSアプリケーション(ビルディング依存関係など)では必要ない依存関係を指定する必要があるNPMパッケージファイルです。
リスト
を作成しますプロジェクト構造とファイルを作成したので、nw.jsマニフェストファイルsrc/package.jsonの使用を開始できます。ドキュメントによると、ファイルには基本的に、名前(アプリケーション名)とメイン(エントリポイントとして使用されるHTMLファイルへのパス)の2つのプロパティのみが必要です。しかし、ユーザーが予期しないものを見ないようにするために、ウィンドウアイコンのパスや最小幅と高さなどの情報を追加しました。
<code>{ "name":"nw.js-example", "main":"views/main.html", "window":{ "min_width":400, "min_height":400, "icon":"assets/icon.png" } }</code>それだけです!メインパスはマニフェストファイルに関連しているため、アプリケーションは後でSRC/Views/Main.htmlを起動時に開きます。
ホームビューを作成します
この時点で、To Doアプリケーションを書くことができます。しかし、NW.JSとその機能に焦点を当てたいと考えています。このために、私は
あなたがアプリが何をするかを決定させることを好みます。 githubでnw.js-examplesの例を作成して、node.jsの統合やクリップボードアクセスなどのいくつかのNW.JS機能を実証しました。アプリケーションでお気軽にお試しください。ただし、他のコンテンツも使用できます。あなたが決定するものは何でも、少なくともSRC/Views/main.htmlファイルを作成する必要があります。これはアプリケーションのエントリポイントであるためです。このように見えるかもしれません:
<code>nw.js-example/ ├── src/ │ ├── app/ │ │ └── main.js │ ├── assets/ │ │ └── icon.png │ ├── styles/ │ │ └── common.css │ ├── views/ │ │ └── main.html │ └── package.json └── package.json</code>
実際のアプリケーションでは、他のいくつかのビューファイルがあり、Ajaxを使用してロードする場合があります。簡単にするために、ネイティブのハイパーリンクを作成して、他のHTMLファイルを参照することもできます。たとえば、
<code>{ "name":"nw.js-example", "main":"views/main.html", "window":{ "min_width":400, "min_height":400, "icon":"assets/icon.png" } }</code>
次に、https://www.php.cn/link/58c1dbad4977b4c106bca8015477757e src/views/を作成します。これが私が例プロジェクトでそれを行う方法です。
nw.js
をインストールしますマニフェストやメインビューを含むNW.JSプロジェクトを作成しました。最終的に、開発のために開発マシンでNW.JSを直接実行し、複数のオペレーティングシステムのネイティブアプリケーションを生成するビルドプロセスを実装する方法が必要です。
これを行うには、次の2つのパッケージが必要です。nw(開発)
- nw-builder(生産)
- 実際のアプリケーションとは関係がないため(開発目的と生産ビルドにのみ使用されます)、2番目のpackage.jsonのdevdependiciesとして作成され、必要な名前とバージョンフィールドとともに作成します。
ここで、プロジェクトのルートフォルダーで次のコマンドを実行して、開発者をインストールする必要があります。
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>NW.js-example | main</title> <link rel="stylesheet" href="../styles/common.css"> </head> <body> <h1 id="Hello-World">Hello World :-)</h1> <🎜> </body> </html>
完成!構築しましょう。
<a href="https://www.php.cn/link/58c1dbad4977b4c106bca8015477757e">Something</a>パッケージングと配布
パッケージを簡素化するには、npmスクリプトをpackage.jsonファイルに追加します。それらは、右側に定義され、ショートカットを使用して左側でnpm実行を使用してCLIコマンドを実行できるようにします。 2つのスクリプトを追加しました。1つは開発用、もう1つは生産用です。
nw.jsを直接実行します
NW.JSアプリケーションを直接開始するには、実行するだけです
{ "name":"nw.js-example", "version":"1.0.0", "devDependencies":{ "nw":"^0.18.2", "nw-builder":"^3.1.2" } }このショートカットは、NWパッケージを使用して、DEVの下のスクリプトで定義したコマンドを呼び出します。開発マシンに新しいウィンドウを直接開く必要があり、SRC/Views/Main.htmlを表示します。
生産構造
生産ビルドは、Windows、Linux、およびMacOSからの出力をサポートするNWビルダーを使用します。この例では、32ビットと64ビットのバージョンを含むこれらすべてのプラットフォーム向けのパッケージを構築しました。現在、MacOSの場合、古いバージョンモードでは32ビットのみを構築できます。 (Githubのこの質問を参照してください。)したがって、64ビットのみが構築されています。
$ npm install
生産ビルドを実行するには、実行するだけです:
NW.JSを直接実行する場合と同様に、これはスクリプトで定義したCLIコマンドを使用します。
しばらく時間がかかります...
{ "name":"nw.js-example", "version":"1.0.0", "devDependencies":{ "nw":"^0.18.2", "nw-builder":"^3.1.2" }, "scripts":{ "dev":"nw src/", "prod":"nwbuild --platforms win32,win64,osx64,linux32,linux64 --buildDir dist/ src/" } }
終了したら、dist/フォルダーを確認してください。このように見えるはずです:
素晴らしい、私たちはほとんど完了です!
テストとデバッグ
マニュアル
NW.JSはChromiumに基づいているため、手動テストはChromeと同じくらい簡単です。エラー(視覚的または機能的)に遭遇したら、キーボードショートカットF12またはプログラムで開発者ツールを開くことができます。<code>nw.js-example/ ├── src/ │ ├── app/ │ │ └── main.js │ ├── assets/ │ │ └── icon.png │ ├── styles/ │ │ └── common.css │ ├── views/ │ │ └── main.html │ └── package.json └── package.json</code>
これにはSDKビルドスタイルが必要であることに注意してください。開発者ツールを生産中に無効にしたい場合は、別のスタイルでNW.JSを構築したり、F12イベントを無効にしたりできます。
自動化
自動化されたユニットテスト(幸運にも)は、継続的な手動テストを必要とせずに、さまざまな実装で適切に機能することを保証するために広く使用されています。
アプリケーションがNW.JS固有のAPIメソッドを使用していない場合、理論的には通常のWebアプリケーションワークフローを維持できます。たとえば、カルマを仕様ランナーとして使用して、テストフレームワークとしてジャスミンと組み合わせています。
ただし、NW.JS固有のAPIメソッドを使用している場合、APIメソッドが定義されていることを確認するには、NW.JSアプリケーションでテストを実行する必要があります。 1つの方法は、Karma-Nodewebkit-LauncherなどのKarmaのNW.JSランチャープラグインを使用することです。 Karmaの他のブラウザランチャープラグインと同じように機能します。NW.JSコンテナでアプリケーションを開き、チェックを実行し、自動的に閉じます。ただし、NW.JSはヘッドレスではないため(PhantomJSなどとは異なり)、常に物理的なディスプレイが必要です。これは、純粋なCLIサーバーでテストを実行することが不可能であることを意味します。幸いなことに、この場合、XVFBを使用してディスプレイをエミュレートできます。これは、たとえばTravis CIで動作します。 Jenkinsの場合、XVFBプラグインをインストールする必要があります。詳細については、GitHubのこの質問をご覧ください。
結論
この記事が、NW.JSの利点とユースケースについて詳しく理解することを願っています。 HTMLファイルを含む.ZIPフォルダー(およびファイルシステムから実行されている)を含む.ZIPフォルダーを配布するよりも優れている理由は、多くの理由があります。 NW.JSは、複雑なGUIに集中する必要がなく、ビデオプレーヤーなどの多くの組み込み機能があるため、ネイティブアプリケーションの代替品としても使用できます。環境を検出できるため、NW.JSを使用して通常のWebサーバーとクライアントマシンで実行できるアプリケーションを開発することもできます。いくつかのトリックがあり、強力なChromiumエンジンのおかげで、ユーザーはネイティブアプリケーションとの違いをほとんど感じることができません。
新しいNW.JSプロジェクトを作成するとき、最初に使用するフレームワーク、モジュールローダー、プリプロセッサを決定します。これらの決定を下した後、あなたのニーズに合ったNW.JSボイラープレートを見つけることができます。適切なボイラープレートがない場合は、このチュートリアルに基づいてアプリケーションを使用することができます。
あなたの好みのモデルは何ですか?または、NW.JSアプリケーションを開発するためにどのテクノロジーを選択しますか?この記事では、To Doアプリケーションの実装ではなく、NW.JSの例を使用することは効果的ですか?コメントで教えてください。NW.JS nw.jsは、クロスプラットフォームデスクトップアプリケーションを開発するための強力なツールです。他のフレームワークとは異なり、NW.JSを使用すると、開発者はWeb開発で一般的に使用されるHTML、CSS、およびJavaScriptでコードを作成できます。これにより、Web開発者がデスクトップアプリケーション開発に移行しやすくなります。さらに、NW.JSには、DOMのnode.js APIに直接アクセスできるユニークな機能があり、より複雑で強力な機能を可能にします。 nw.jsを開始するには、まず公式Webサイトからダウンロードしてインストールする必要があります。インストールが完了したら、新しいプロジェクトディレクトリを作成し、HTML、CSS、およびJavaScriptファイルを追加してから、NW.JS実行可能ファイルを使用してアプリケーションを実行できます。 NW.JSドキュメントは、開始方法に関する詳細なガイドを提供します。 はい、商用プロジェクトにはNW.JSを使用できます。 NW.JSはオープンソースで無料で利用可能であるため、クロスプラットフォームのデスクトップアプリケーションを開発するための費用対効果の高いソリューションです。ただし、使用されるサードパーティモジュールには独自のライセンス要件があることに注意する必要があります。
を使用したクロスプラットフォームデスクトップアプリケーションに関する
FAQ(FAQ)
NW.JSと他のクロスプラットフォームデスクトップアプリケーションフレームワークの主な違いは何ですか?
nw.jsを始めるにはどうすればよいですか?
商用プロジェクトにNW.JSを使用できますか?
nw.jsアプリケーションをパッケージ化して配布する方法は?
NW.JSアプリケーションの梱包と配布には、ターゲットプラットフォームで実行できるスタンドアロン実行可能ファイルの作成が含まれます。これは、NWビルダーやWebパックなどのツールを使用して実行できます。パッケージ化すると、直接ダウンロードやアプリストアなど、さまざまなチャネルを通じてアプリケーションを配布できます。
nw.jsはさまざまなプラットフォームをサポートしています。 Windows、Mac、Linuxのアプリケーションを開発するために使用できます。このクロスプラットフォームサポートは、開発者が一度にコードを作成して複数のプラットフォームで実行できるため、NW.JSを使用することの重要な利点の1つです。
nw.jsアプリケーションのデバッグは、Webアプリケーションのデバッグに似ています。 NW.JSバンドルが提供するChrome開発者ツールを使用してデバッグできます。これらのツールは、コードをチェックおよびデバッグするための多くの機能を提供します。
はい、NW.JSの重要な機能の1つは、node.jsモジュールをDOMで直接使用できることです。これにより、アプリケーションでより複雑で強力な機能を実装できます。 NW.JSアプリケーションでNPMで利用可能な数千のモジュールを使用できます。
NW.JSアプリケーションの更新には、アプリケーションの古いバージョンを新しいバージョンのアプリケーションに置き換えることが含まれます。これは、ユーザーが手動で実行することも、NW-Updaterなどのモジュールを使用してアプリケーションに自動更新を実装することもできます。
はい、NW.JSはnode.jsを介してネイティブAPIに直接アクセスできますこれは、アプリケーションでファイルシステム、ネットワーク、デバイスなどのネイティブ機能を使用できることを意味します。これは、従来のWebテクノロジーよりもNW.JSの重要な利点です。
nw.jsアプリケーションのパフォーマンスを最適化する方法は?
NW.JSアプリケーションのパフォーマンスの最適化には、JavaScriptファイルの最小化と接続、画像の最適化、効率的なアルゴリズムとデータ構造の使用など、さまざまなテクノロジーが含まれます。さらに、Chrome開発者ツールを使用して、パフォーマンスの問題を分析およびデバッグできます。
以上がNW.JSを使用してクロスプラットフォームデスクトップアプリを構築しますの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

JavaScript文字列置換法とFAQの詳細な説明 この記事では、javaScriptの文字列文字を置き換える2つの方法について説明します:内部JavaScriptコードとWebページの内部HTML。 JavaScriptコード内の文字列を交換します 最も直接的な方法は、置換()メソッドを使用することです。 str = str.replace( "find"、 "置換"); この方法は、最初の一致のみを置き換えます。すべての一致を置き換えるには、正規表現を使用して、グローバルフラグGを追加します。 str = str.replace(/fi

それで、あなたはここで、Ajaxと呼ばれるこのことについてすべてを学ぶ準備ができています。しかし、それは正確には何ですか? Ajaxという用語は、動的でインタラクティブなWebコンテンツを作成するために使用されるテクノロジーのゆるいグループ化を指します。 Ajaxという用語は、もともとJesse Jによって造られました

10の楽しいjQueryゲームプラグインして、あなたのウェブサイトをより魅力的にし、ユーザーの粘着性を高めます! Flashは依然としてカジュアルなWebゲームを開発するのに最適なソフトウェアですが、jQueryは驚くべき効果を生み出すこともできます。また、純粋なアクションフラッシュゲームに匹敵するものではありませんが、場合によってはブラウザで予期せぬ楽しみもできます。 jquery tic toeゲーム ゲームプログラミングの「Hello World」には、JQueryバージョンがあります。 ソースコード jQueryクレイジーワードコンポジションゲーム これは空白のゲームであり、単語の文脈を知らないために奇妙な結果を生み出すことができます。 ソースコード jquery鉱山の掃引ゲーム

記事では、JavaScriptライブラリの作成、公開、および維持について説明し、計画、開発、テスト、ドキュメント、およびプロモーション戦略に焦点を当てています。

このチュートリアルでは、jQueryを使用して魅惑的な視差の背景効果を作成する方法を示しています。 見事な視覚的な深さを作成するレイヤー画像を備えたヘッダーバナーを構築します。 更新されたプラグインは、jQuery 1.6.4以降で動作します。 ダウンロードしてください

この記事では、ブラウザでJavaScriptのパフォーマンスを最適化するための戦略について説明し、実行時間の短縮、ページの負荷速度への影響を最小限に抑えることに焦点を当てています。

Matter.jsは、JavaScriptで書かれた2D Rigid Body Physics Engineです。このライブラリは、ブラウザで2D物理学を簡単にシミュレートするのに役立ちます。剛体を作成し、質量、面積、密度などの物理的特性を割り当てる機能など、多くの機能を提供します。また、重力摩擦など、さまざまな種類の衝突や力をシミュレートすることもできます。 Matter.jsは、すべての主流ブラウザをサポートしています。さらに、タッチを検出し、応答性が高いため、モバイルデバイスに適しています。これらの機能はすべて、物理ベースの2Dゲームまたはシミュレーションを簡単に作成できるため、エンジンの使用方法を学ぶために時間をかける価値があります。このチュートリアルでは、このライブラリのインストールや使用法を含むこのライブラリの基本を取り上げ、

この記事では、JQueryとAjaxを使用して5秒ごとにDivのコンテンツを自動的に更新する方法を示しています。 この例は、RSSフィードからの最新のブログ投稿と、最後の更新タイムスタンプを取得して表示します。 読み込み画像はオプションです


ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

SAP NetWeaver Server Adapter for Eclipse
Eclipse を SAP NetWeaver アプリケーション サーバーと統合します。

PhpStorm Mac バージョン
最新(2018.2.1)のプロフェッショナル向けPHP統合開発ツール

SublimeText3 中国語版
中国語版、とても使いやすい

MantisBT
Mantis は、製品の欠陥追跡を支援するために設計された、導入が簡単な Web ベースの欠陥追跡ツールです。 PHP、MySQL、Web サーバーが必要です。デモおよびホスティング サービスをチェックしてください。

VSCode Windows 64 ビットのダウンロード
Microsoft によって発売された無料で強力な IDE エディター

ホットトピック



