winrtアプリケーション(javascript)でsqliteを使用できますか?
-
27-10-2019 - |
質問
Windows 8(WinRT)JavaScriptアプリケーションでSQLiteデータベースを使用することは可能ですか?
私が達成したいのは、SQLiteデータベースをダウンロードし、使用する前にローカルストレージに保存することです。 JavaScriptベースのWinRTアプリケーションでは、何らかの形のローカルストレージが利用できると思いますが、このシナリオでSQLiteが使用可能かどうかを知りたいと思います。
また、SQLiteの.NET実装ではいくつかのWin32コールを使用していることも知っています。Windows8アプリのセリフィーゼーションプロセスではこれらが許可されないと考えています。
解決
JavaScriptには、html5 indexeddbを使用できます。
SQLiteについては、最初にJavaScriptから消費できるWinRTコンポーネントとして包んで、C ++/CXを使用することができる場合でも使用できます。そのAPI表面はそれほど大きくないので、確かに可能です。私は少し前にMetroのSQLiteのコンパイルを実験しましたが、アプリコンテナで利用できず、交換する必要があるWin32 API呼び出しはわずかしかありませんでした。
他のヒント
作成しました sqlite3-winrt このため。これは、Windows Metro Style App認定を通過するSQLite用のWinRTコンポーネントラッパーです。また、使いやすいJavaScriptの抽象化も含まれています。
これを見てください:http://sqlwinrt.codeplex.com/
はい、SQLiteデータベースはWindows 8 RTMでサポートされています。これですべて(Windows8、ツール、サンプル)をダウンロードできます Windows Dev Center.
はい、winrtマシンでsqliteを使用できます。次の手順に従ってください
- 新しいプロジェクトを作成します。
- 参照に移動してから、そこの参照を右クリックして、Nupackageをクリックします。それをクリックします。
- SQLite-Netパッケージをオンラインで検索すると、そのパッケージを含みます。
- 再び参照を右クリックして、レフレンスを追加します。拡張セクションでは、2つのチェックされていない参照MS Visual C ++実行時間とSQLite Windowsランタイムが表示されます。参照の両方を確認し、参照を追加します。ソリューションエクスプローラーに2つのCSファイルが表示されます。
- 次に、zipファイルをダウンロードします https://github.com/doo/sqlite3-winrt プロジェクトでCSファイルを使用するラッパーのものを提供します。
- 任意の場所で解凍します。
- プロジェクトでは、file-> add->既存のプロジェクト - >に移動し、Unzipの場所を閲覧します。そこで、sqlite3component内にファイルsqlite3component.vcxprojが入手できます。そのファイルを追加します。
- 現在、ラッパープロジェクトがあなたのプロジェクトに含まれています。
- 解凍されたファイルで、SQLite3JSフォルダーをコピーして、ソリューションエクスプローラーに貼り付けて貼り付けます。
- これで、プロジェクトでSQLiteを使用する準備ができました。
- プロジェクトを構築してみてください。Winres.hファイルがそこにないという2つのエラーが表示されます。そのためにエラーの場所に移動して、winresrc.hの名前を変更し、再度構築します。これで構築され、プロジェクトでSQLiteを使用できます。
- sqlite3jsの.jsファイルを使用するには、sqlite 3js js sqlite3.jsのようなJSファイルのSRCをHTMLページで提供します。ここでは、JS //でsqliteを使用する例を示しています。 var dbpath = windows.storage.applicationdata.current.localfolder.path + ' db.sqlite'; sqlite3js.openasync(dbpath).then(function(db){return db.runasync( 'table notes(id text primary key、notes text)');これらすべてのステップがあなたを助けてくれることを願っています。