2017-05-16 2 views
2

다람쥐를 사용하여 전자 앱에 자동 업데이트를 구현하고 있습니다. 다운로드 한 업데이트를 저장하여 나중에 설치하려면 어떻게합니까?

  • 이 일시적으로 따로 업데이트를 설정하고 응용 프로그램이 다음 번 설치 (autoUpdater.quitAndInstall() 사용)

    1. 이 응용 프로그램을 종료하고 즉시 업데이트를 설치 : 업데이트를 다운로드 할 때 나는 그들에게 두 가지 옵션을 제공, 사용자에게 대화 상자를 표시 시작

    옵션 1 - 이제 설치가 정상적으로 작동하지만 옵션 2 - 다음 앱 실행시 설치 - 작동하지 않을 수 있습니다.

    사용자가 나중에 설치하도록 선택하면 다음에 응용 프로그램을 시작할 때 업데이트가 즉시 설치됩니다.

    내 응용 프로그램에서는 autoUpdater update-downloaded 이벤트를 처리합니다. 앱을 시작할 때 checkForUpdates라고도합니다. 업데이트를 무시한 다음 앱을 실행하면 checkForUpdates에 대한 호출로 다람쥐가 기존 다운로드를 알게되고 update-downloaded 이벤트가 발생하고 사용자에게 업데이트 설치 여부를 묻는 메시지가 표시됩니다. 그러나 update-downloaded 이벤트가 방출되지 않습니다.

    둘째, 사용자가 나중에 설치를 선택하면 userData 파일에 다음 번에 앱이 실행될 때 autoUpdater.quitAndInstall을 호출하도록 앱에 알리는 플래그를 작성했습니다. 이 메서드는 update-downloaded이 발생한 후에 만 ​​호출 할 수 있으므로 오류가 발생합니다.

    어떻게 작동합니까? 기존 다운로드를 삭제해야 앱을 다시 시작할 때 다시 다운로드해야합니까? 이것은 옳지 않은 것처럼 보입니다.

  • 답변

    0

    전화 autoUpdater.checkForUpdates(); 응용 프로그램은 다음과 같이 시작 : 사용자가 종료 할 때마다

    이 업데이트처럼 보이는
    autoUpdater.addListener("update-downloaded", function() { 
        if (userData flag) { 
         autoUpdater.quitAndInstall(); 
        } 
    }); 
    
    autoUpdater.setFeedURL('autoUpdaterFeedUrl'); 
    autoUpdater.checkForUpdates(); 
    
    +1

    가 여전히 설치 얻을 것이다. 그것은'autoUpdate.checkForUpdates()'가 체크하는 것 이상을하는 것으로 보이며, 다운로드를 시작하고 다운로드를 대기열에 올려 놓는다. Mike Goodwin이 원하는 것은 사용자가 명시 적으로 동의 할 때까지 업데이트를 막을 수 있다는 것입니다. – GladstoneKeep

    +0

    @GladstoneKeep이 정확합니다. 나는 그 질문을 더 명확하게 편집 할 것이다. –