共用方式為


逐步解說:使用 JavaScript 建立 SDK

本逐步解說教導如何使用 JavaScript 建立簡單的數學 SDK 作為 Visual Studio 擴充功能 (VSIX)。 本逐步解說分為下列幾個部分:

  • 建立 SimpleMathVSIX 擴充功能 SDK 專案

  • 建立使用 SDK 的範例應用程式

    沒有適用於 JavaScript 的類別庫專案類型。 在本逐步解說中,直接在 VSIX 專案中建立範例 arithmetic.js 檔案。 在實務上,我們建議您在將 JavaScript 和 CSS 檔案放入 VSIX 專案前,先將其作為 Windows 市集應用程式進行建置和測試,例如,使用空白應用程式範本。

必要條件

若要依照本逐步解說執行作業,您必須安裝 Visual Studio SDK。 如需詳細資訊,請參閱 Visual Studio SDK

建立 SimpleMathVSIX 擴充功能 SDK 專案

  1. 在功能表列上,選擇 [檔案]>[新增]>[專案]

  2. 在範本類別清單的 Visual C# 下,選取擴充性,然後選取 VSIX 專案範本。

  3. 名稱文字方塊中,指定 SimpleMathVSIX,然後選擇確定按鈕。

  4. 如果出現 Visual Studio 套件精靈,請選擇歡迎頁面上的下一步按鈕,然後在 第 7 之 1 頁選擇完成按鈕。

    雖然會開啟資訊清單設計工具,但我們將直接修改資訊清單檔案來保持本逐步解說的簡單性。

  5. 方案總管中,開啟 source.extension.vsixmanifest 檔案的捷徑功能表,然後選擇檢視程式碼。 使用此程式碼來取代檔案中現有的內容。

    <?xml version="1.0" encoding="utf-8"?>
    <PackageManifest Version="2.0.0" xmlns="http://schemas.microsoft.com/developer/vsx-schema/2011" xmlns:d="http://schemas.microsoft.com/developer/vsx-schema-design/2011">
      <Metadata>
        <Identity Id="SimpleMathVSIX" Version="1.0" Language="en-US" Publisher="myname" />
        <DisplayName>Simple Math</DisplayName>
        <Description>Does basic arithmetic calculations.</Description>
      </Metadata>
      <Installation Scope="Global" AllUsers="true">
        <InstallationTarget Id="Microsoft.ExtensionSDK" TargetPlatformIdentifier="Windows" TargetPlatformVersion="v8.0" SdkName="SimpleMath" SdkVersion="1.0" />
      </Installation>
      <Dependencies>
        <Dependency Id="Microsoft.Framework.NDP" DisplayName="Microsoft .NET Framework" d:Source="Manual" Version="4.5" />
      </Dependencies>
      <Assets>
        <Asset Type="Microsoft.ExtensionSDK" d:Source="File" Path="SDKManifest.xml" />
      </Assets>
    </PackageManifest>
    
  6. 方案總管中,開啟 SimpleMathVSIX 專案的捷徑功能表,然後選擇新增>新增項目

  7. 資料類別中,選取 XML 檔案、將檔案 SDKManifest.xml 命名 ,然後選擇 新增按鈕。

  8. 方案總管中,開啟 SDKManifest.xml 檔案的捷徑功能表,然後選擇開啟以在 XML 編輯器中顯示檔案。

  9. 將下列程式碼新增至 SDKManifest.xml 檔案。

    <?xml version="1.0" encoding="utf-8" ?>
    <FileList
      DisplayName="Simple Math"
      MinVSVersion="14.0"
      AppliesTo="JavaScript+WindowsAppContainer"
      SupportsMultipleVersions="Error"
      MoreInfo="https://msdn.microsoft.com/">
    
      <!-- JS -->
      <File Content="js\arithmetic.js" />
    </FileList>
    
    
  10. 方案總管中的 SDKManifest.xml 檔案捷徑功能表上,選擇屬性

  11. 屬性視窗中,將包含在 VSIX 屬性設定為 True

  12. 方案總管中的 SimpleMathVSIX 專案的捷徑功能表上,選擇新增>新增資料夾,然後將資料夾 Redist 命名 。

  13. 在 [Redist] 底下新增子資料夾,以建立此資料夾結構:

    \Redist\CommonConfiguration\Neutral\SimpleMath\js\

  14. \js\ 資料夾的捷徑功能表上,選擇新增>新增項目

  15. Visual C# 項目下,選取 Web 類別,然後選取 JavaScript 檔案 項目。 將檔案 arithmetic.js 命名,然後選擇新增按鈕。

  16. 將下列程式碼插入 arithmetic.js

    (function (global) {
        "use strict";
        global.Arithmetic = {
            add: function (firstNumber, secondNumber) {
                return firstNumber + secondNumber;
            },
    
            subtract: function (firstNumber, secondNumber) {
                return firstNumber - secondNumber;
            },
    
            multiply: function (firstNumber, secondNumber) {
                return firstNumber * secondNumber;
            },
    
            divide: function (firstNumber, secondNumber) {
                return firstNumber / secondNumber;
            }
        };
    })(this);
    
    
  17. 方案總管中的 arithmetic.js 檔案捷徑功能表上,選擇屬性。 進行下列屬性變更:

    • 包含在 VSIX 屬性設定為 True

    • 複製到輸出目錄屬性設定設為永遠複製

  18. 方案總管中的 SimpleMathVSIX 專案的捷徑功能表上,選擇建置

  19. 建置成功完成之後,在專案的捷徑功能表上,選擇在檔案總管中開啟資料夾。 瀏覽至 \bin\debug\,然後執行 SimpleMathVSIX.vsix 以將其安裝。

  20. 選擇安裝按鈕,讓安裝完成。

  21. 重新啟動 Visual Studio。

建立使用 SDK 的範例應用程式

  1. 在功能表列上,選擇 [檔案]>[新增]>[專案]

  2. 在範本類別清單中的 JavaScript 下,選取 Windows 市集,然後選取空白應用程式範本。

  3. 名稱方塊中,指定 ArithmeticUI。 選擇 [確定] 按鈕。

  4. 方案總管中,開啟 ArithmeticUI 專案的捷徑功能表,然後選擇新增>參考

  5. Windows 下,選擇擴充功能,並注意是否顯示 簡單數學

  6. 選取簡單數學核取方塊,然後選擇確定按鈕。

  7. 方案總管參考下,注意是否顯示簡單數學 參考。 將其展開,並注意是否有一個包含 arithmetic.js\js\ 資料夾。 您可以開啟 arithmetic.js 以確認原始程式碼是否已安裝。

  8. 使用下列程式碼取代 default.htm 的內容。

    <!DOCTYPE html>
    <html>
    <head>
        <meta charset="utf-8" />
        <title>ArithmeticUI</title>
    
        <!-- WinJS references -->
        <link href="//Microsoft.WinJS.1.0/css/ui-dark.css" rel="stylesheet" />
        <script src="//Microsoft.WinJS.1.0/js/base.js"></script>
        <script src="//Microsoft.WinJS.1.0/js/ui.js"></script>
    
        <!-- ArithmeticUI references -->
        <link href="/css/default.css" rel="stylesheet" />
        <script src="/js/default.js"></script>
        <script src="/SimpleMath/js/arithmetic.js"></script>
    </head>
    <body>
        <form>
        <div id="calculator" class="ms-grid">
            <input name="firstNumber" id="firstNumber" type="number" step="any">
            <div id="operators">
                <button class="operator" type="button">+</button>
                <button class="operator" type="button">-</button>
                <button class="operator" type="button">*</button>
                <button class="operator" type="button">/</button>
            </div>
            <input id="secondNumber" type="number">
            <button class="calculate" type="button">=</button>
            <input id="result" type="number" name="result" disabled="" readonly="">
        </div>
        </form>
    </body>
    </html>
    
  9. 使用下列程式碼取代 \js\default.js 的內容。

    (function () {
        "use strict";
    
        var app = WinJS.Application;
        var operation = null;
    
        function calculateResult() {
            var firstNumber = parseFloat(document.querySelector("#firstNumber").value),
                secondNumber = parseFloat(document.querySelector("#secondNumber").value),
                result = 0;
    
            if (isNaN(firstNumber) || isNaN(secondNumber)) {
                result = 0;
            }
            else {
                switch (operation) {
                    case "+":
                        result = Arithmetic.add(firstNumber, secondNumber);
                        break;
                    case "-":
                        result = Arithmetic.subtract(firstNumber, secondNumber);
                        break;
                    case "*":
                        result = Arithmetic.multiply(firstNumber, secondNumber);
                        break;
                    case "/":
                        result = Arithmetic.divide(firstNumber, secondNumber);
                        break;
                    default:
                }
            }
            document.querySelector("#result").value = result.toString();
        }
    
        app.onactivated = function (args) {
            document.querySelector("#calculator").addEventListener("click", function (event) {
                if (event.target.tagName.toLowerCase() === "button") {
                    switch (event.target.className) {
                        case "operator":
                            operation = event.target.innerText;
                            break;
                        case "calculate":
                            calculateResult();
                            break;
                        default:
                            break;
                    }
                }
            });
        };
    
        app.start();
    })();
    
  10. 使用已下程式碼替換 \css\default.css 的內容:

    form {
        display: -ms-grid;
        -ms-grid-rows: 1fr auto 1fr;
        -ms-grid-columns: 1fr auto 1fr;
        height: 100%;
        width: 100%;
    }
    
    button, input[type=number] {
        margin-right: 5px;
        -ms-grid-row-align: center;
    }
    
    #calculator {
        -ms-grid-column: 2;
        -ms-grid-row: 2;
        display: -ms-grid;
        -ms-grid-rows: 1fr;
        -ms-grid-columns: auto min-content auto auto auto;
    }
    
    .ms-grid input {
        width: 5em;
    }
    
    #firstNumber {
        -ms-grid-column: 1;
        -ms-grid-row-align: center;
    }
    
    #operators {
        -ms-grid-column: 2;
        -ms-grid-row-align: center;
    }
    
        #operators button.operator {
            margin-bottom: 5px;
            height: 40px;
        }
    
    #secondNumber {
        -ms-grid-column: 3;
    }
    
    button.calculate {
        -ms-grid-column: 4;
        -ms-grid-row-align: center;
        height: 40px;
    }
    
    #result {
        -ms-grid-column: 5;
    }
    
    
  11. 選擇 F5 鍵,建置並執行應用程式。

  12. 在應用程式 UI 中,輸入任兩個數字、選取作業,然後選擇 = 按鈕。 顯示正確結果。