'不是有效的Win32应用程序'在Windows / Windows Mobile 10

时间:2016-06-20 11:00:35

标签: cordova windows-10-universal windows-10-mobile adal

我已将此问题的问题添加到https://github.com/AzureAD/azure-activedirectory-library-for-cordova,但我没有收到任何回复,因此我会在此处尝试。

我正在尝试让我的Cordova应用程序使用AAD,但我无法让它适用于Windows / Windows Mobile目标。

当我调用插件时,它将尝试调用本机方法,并且我收到错误:'不是有效的Win32应用程序'。在我的手机上,错误消息是:'系统找不到指定的文件'。这种情况发生在我自己的应用程序中,但也是当我从“样本”中运行样本时文件夹中。

Repro详情:

  1. 我正在使用Cordova 6.1.1,我尝试了0.7.1和0.7.2-dev版本的插件。

  2. 定位Windows 10和Windows Phone(Universal)平台时出错。 Android工作正常。

  3. 我在笔记本电脑上使用Windows Insider Preview Build 14361(以及之前的版本)测试了这个,我的手机使用Windows Insiders Build 14256和Emulators运行两个版本10240和10586.

  4. 从命令行使用Cordova时以及使用Visual Studio Cordova Tools(版本14.0.60527.5,在Visual Studio Enterprise 2015 14.0.25123.00 2015 Update 2中运行)时会出现此问题。

    < / LI>

    我没有启用SSO选项。

    点击了“创建身份验证上下文”后,我附加了示例应用程序的输出。按钮。

    Screenshot from the sample application.

    从示例中添加了简化代码,可在https://github.com/AzureAD/azure-activedirectory-library-for-cordova/tree/master/sample

    找到
    var AuthenticationContext;
    
    var authority = 'https://login.windows.net/test353.onmicrosoft.com';
    var resourceUrl = 'https://graph.windows.net/';
    var appId = '1eed60fd-93bf-44c3-948b-d419b32b5ed6';
    var redirectUrl = 'http://localhost:4400/services/aad/redirectTarget.html';
    
    var tenantName = 'test353.onmicrosoft.com';
    var endpointUrl = resourceUrl + tenantName;
    
    var app = {
        // Application Constructor
        initialize: function () {
            this.bindEvents();
        },
    
        // Bind Event Listeners
        //
        // Bind any events that are required on startup. Common events are:
        // 'load', 'deviceready', 'offline', and 'online'.
        bindEvents: function () {
            document.addEventListener('deviceready', app.onDeviceReady, false);
        },
    
        // deviceready Event Handler
        //
        // The scope of 'this' is the event. In order to call the 'receivedEvent'
        // function, we must explicitly call 'app.receivedEvent(...);'
        onDeviceReady: function () {
            // app.receivedEvent('deviceready');
            AuthenticationContext = Microsoft.ADAL.AuthenticationContext;
    
            this.createContext();
        },
    
        createContext: function() {
            AuthenticationContext.createAsync(authority)
            .then(function (context) { app.authContext = context; }, app.error);
        },
    
        error: function(e) {
            alert(e.message);
        }
    };
    

0 个答案:

没有答案