Проблема с Outlook Addin Dialog API - PullRequest
0 голосов
/ 04 мая 2020

Я пытался использовать диалоговое окно для аутентификации. Диалоговое окно открывается, но не отправляет сообщение обратно через API messageParent, однако при добавлении displayInIframe в свойства диалога диалоговое окно не возникает. Но мы не можем использовать Iframe для аутентификации.

Вот диалог вызова функции,

function openDialog() {
    console.log("openDialog");
    Office.context.ui.displayDialogAsync("https://localhost:3000/src/auth/auth.html ", { height: 50, width: 50, promptBeforeOpen: false }, dialogCallback);
}

Часть файла web.config

module.exports = async(env, options) => {
    const dev = options.mode === "development";
    const config = {
        devtool: "source-map",
        entry: {
            polyfill: "@babel/polyfill",
            taskpane: "./src/taskpane/taskpane.js",
            commands: "./src/commands/commands.js",
            auth: "./src/auth/auth.js"
        },
        resolve: {
            extensions: [".ts", ".tsx", ".html", ".js"]
        },
        module: {
            rules: [{
                    test: /\.js$/,
                    exclude: /node_modules/,
                    use: {
                        loader: "babel-loader",
                        options: {
                            presets: ["@babel/preset-env"]
                        }
                    }
                },
                {
                    test: /\.html$/,
                    exclude: /node_modules/,
                    use: "html-loader"
                },
                {
                    test: /\.(png|jpg|jpeg|gif)$/,
                    use: "file-loader"
                }
            ]
        },
        plugins: [
            new CleanWebpackPlugin(),
            new HtmlWebpackPlugin({
                filename: "taskpane.html",
                template: "./src/taskpane/taskpane.html",
                chunks: ["polyfill", "taskpane"]
            }),
            new CopyWebpackPlugin([{
                to: "taskpane.css",
                from: "./src/taskpane/taskpane.css"
            }]),
            new HtmlWebpackPlugin({
                filename: "commands.html",
                template: "./src/commands/commands.html",
                chunks: ["polyfill", "commands"]
            }),
            new HtmlWebpackPlugin({
                filename: "auth.html",
                template: "./src/auth/auth.html",
                chunks: ["polyfill", "dialog"]
            }),
        ],
        devServer: {
            headers: {
                "Access-Control-Allow-Origin": "*"
            },
            https: (options.https !== undefined) ? options.https : await devCerts.getHttpsServerOptions(),
            port: process.env.npm_package_config_dev_server_port || 3000
        }
    };

Вот простое auth. js файл, который я использую для отладки,

Office.initialize = function() {
  $('#button1').click(one);
};

function one() {
    console.log("picked 1");
    Office.context.ui.messageParent("Picked 1");
    console.log("picked");
    // Both the console lines are working in new window but messageParent not returning message
}
...