2012-09-21 2 views
1

Settings Charm에 About 버튼 (링크 일 수 있음)을 추가하고 싶습니다. 하지만 설정 매력에 콘텐츠를 표시하고 싶지 않습니다. 응용 프로그램의 About.html 페이지를 탐색해야합니다. 앱 설정 샘플이 도움이되지 못했습니다. 이것을 달성하기 위해 어쨌든 있습니까? About Button To Settings Charm

은 현재 내가 HTML 폴더 아래 HTML 파일을 생성

app.onactivated = function (eventObject) { 
     if (eventObject.detail.kind === Windows.ApplicationModel.Activation.ActivationKind.launch) { 
      //WinJS.UI.disableAnimations(); 

      WinJS.Application.onsettings = function (e) { 
       e.detail.applicationcommands = { 
        "about": { 
         title: "About", href:"/html/About.html" 
         } 
       } 
       WinJS.UI.SettingsFlyout.populateSettings(e); 
       }; 
... 
} 

default.js 아래 코드를 추가) 나는 자바 스크립트와 HTML이 작업을 수행해야합니다. 여기 about.html 기본

<!DOCTYPE html> 
<html> 
<head> 
    <meta charset="utf-8" /> 
    <title>About</title> 

    <!-- WinJS references --> 
    <script src="//Microsoft.WinJS.1.0/js/base.js"></script> 
    <script src="//Microsoft.WinJS.1.0/js/ui.js"></script> 


    <link rel="stylesheet" type="text/css" href="css/staticPages.css" /> 
    <script type="text/javascript" src="/js/navigator.js"></script> 
    <script src="/js/jq-1.7.1.min.js" type="text/javascript"></script> 
    <script type="text/javascript" src="/js/networkInfo.js"></script> 
    <script src="/js/About.js" type="text/javascript"></script> 
</head> 
    <body> 
    <div id="siluet" class="siluet">&nbsp;</div> 
    <div id="contentDetay"> 
     <button id="backbutton" class="win-backbutton"> 
     </button> 
     <img id="headLogo" src="/images/head_logo.png" alt="XYZ" /> 
     <progress id="progressRing"></progress> 
     <div id="title"><h1 id="groupNameHeader">Group Name</h1><h1 id="pageTitle">Page Title</h1><div id="sectionSelectArrow">&nbsp;</div></div> 
     <div id="menuPopUp"> 
      <select id="menuList" multiple="multiple"></select> 
     </div> 

     <div id="staticContainer"></div> 
     <div id="noSnapView"> 
      <p>İçeriği görüntüleyebilmek için ekranı büyütün</p> 
     </div> 
    </div> 
</body> 

</html> 

내가 설정 매력 바에서 링크 정보를 클릭 문제에 대한 코드입니다, 나는/JS 폴더 아래 About.js 파일에 오류가 발생했습니다.

(function() { 
    'use strict'; 

    var dataItems; 
    var groupIndex; 
    var sectionIndex; 
    var itemIndex; 

    function ready(element, options) { 

     networkInfo.getInfo(); 
     pageTitle.style.display = "none"; // pageTitle.style is undefined 

     var that = this; 
     groupNameHeader.innerText = "About"; // groupNameHeader is undefined 

     var aboutContent; // This content is retrieving from web service 
     // staticContainer is undefined 
     staticContainer.innerHTML = window.toStaticHTML(aboutContent); 

    } 

    WinJS.Namespace.define("appGlobal", { 
     fadeProgressRingOut: fadeProgressRingOut 
    }); 
    WinJS.UI.Pages.define("/html/About.html", { 
     ready: ready 
    }); 

})(); 

모든 HTML 요소는 .js 파일에서 정의되지 않았 음을 알 수 있습니다. 하지만 그 이유를 찾지 못했습니다.

답변

2

문제를 해결할 수 있습니다 이런 식으로 코드를 변경 :

app.onactivated = function (eventObject) { 
    if (eventObject.detail.kind === Windows.ApplicationModel.Activation.ActivationKind.launch) { 
     //WinJS.UI.disableAnimations(); 

     var settingsPane = Windows.UI.ApplicationSettings.SettingsPane.getForCurrentView(); 
     settingsPane.addEventListener("commandsrequested", onCommandsRequested); 

    // ... 

} 

function onSettingsCommand(){ 
    nav.navigate("html/about.html"); 
} 

function onCommandsRequested(eventArgs){ 
    var settingsCommand = new Windows.UI.ApplicationSettings.SettingsCommand("about", About", onSettingsCommand); 
    eventArgs.request.applicationCommands.append(settingsCommand); 
} 
3

JavaScript App Settings sample에는 설정 매력에 버튼을 추가하는 방법이 자세히 나와 있습니다.

WinJS.Application.onsettings = function (e) { 
    e.detail.applicationcommands = { 
     "aboutDiv": { title: "About", href: "/html/About.html" } 
    }; 
    WinJS.UI.SettingsFlyout.populateSettings(e); 
}; 
+0

네,이 코드를 발견했다하지만 난 그것을 작동하지 않을 수 있습니다 여기에

당신이 시작하는 코드 조각입니다. about.html의 .js 파일 (about.js)이 .js 파일에서 액세스 할 수 없기 때문에 매우 이상합니다. 모든 컨트롤의 값은 정의되지 않습니다. –