Ошибка предоставления средства выбора диска Google в Edge на MacOS

Я использую средство выбора файлов Google Диска в приложении Angular 11. Я работаю в MacOS, используя https://localhost, используя новейшую версию всех браузеров. У меня это работает в Chrome, Firefox и Safari, но в Edge я получаю следующую ошибку в консоли, когда пытаюсь открыть средство выбора:

введите здесь описание изображения

и я получаю это в приложении:

введите здесь описание изображения

Установка Edge на MacOS чистая, я не возился ни с какими настройками.

Я использую службу Angular, чтобы открыть средство выбора файлов, и оно выглядит так:

    // this service is based on based on https://stackoverflow.com/questions/51522954/angular-6-google-picker-api-popup
import { Injectable } from '@angular/core';

declare const gapi: any;
declare const google: any;

@Injectable({
    providedIn: 'root'
})
export class GoogleDriveService {

    constructor() { }

    // clientId and apiKey from GCP credentials page
    private clientId = '***';
    private apiKey = '***';
    // appId = project number from developers.google.com. See "Project number" under "IAM & Admin" > "Settings"
    private appId = '***';
    private scope = 'https://www.googleapis.com/auth/drive.file';

    private oauthAccessToken = null;
    private pickerApiLoaded = false;
    private pickerCallback = null;

    public open(callback): void {
        this.pickerCallback = callback;
        gapi.load('auth', { 'callback': this.onAuthApiLoad.bind(this) });
        gapi.load('picker', { 'callback': this.onPickerApiLoad.bind(this) });
    }

    private onAuthApiLoad(): void {
        gapi.auth.authorize({
            'client_id': this.clientId,
            'scope': this.scope,
            'immediate': false,
        }, this.handleAuthResult.bind(this));
    }

    private onPickerApiLoad(): void {
        this.pickerApiLoaded = true;
        this.createPicker();
    }

    private handleAuthResult(authResult): void {
        if (authResult && !authResult.error) {
            this.oauthAccessToken = authResult.access_token;
            this.createPicker();
        } else {
            console.warn('authResult', authResult);
        }
    }

    private createPicker(): void {
        if (this.pickerApiLoaded && this.oauthAccessToken) {
            const view = new google.picker.View(google.picker.ViewId.DOCS);
            
            // this code can be used to display folders (but unfortunately not in a folder tree)
            // const docsView = new google.picker.DocsView()
            //     .setIncludeFolders(true)
            //     .setMimeTypes('application/vnd.google-apps.folder, application/pdf')
            //     .setSelectFolderEnabled(true);

            const picker = new google.picker.PickerBuilder()
                .enableFeature(google.picker.Feature.NAV_HIDDEN)
                .enableFeature(google.picker.Feature.MULTISELECT_ENABLED)
                .setAppId(this.appId)
                .setOAuthToken(this.oauthAccessToken)
                .addView(view)
                // .addView(docsView)
                .addView(new google.picker.DocsUploadView())
                .setDeveloperKey(this.apiKey)
                .setCallback(this.pickerCallback)
                .build();
            picker.setVisible(true);
        }
    }
}

Есть идеи, почему это не работает в Edge?


person Jørgen Rasmussen    schedule 23.06.2021    source источник
comment
Что такое «ob» в сообщении об ошибке? Пробовали ли вы разрешить файлы cookie в MS Edge, вы можете попробовать: Откройте Microsoft Edge, выберите Меню (значок с тремя точками в правом верхнем углу браузера) › Настройки › Разрешения сайта › Файлы cookie и данные сайта › Включите Разрешить сайтам сохранять и прочитать данные файлов cookie (рекомендуется), чтобы разблокировать файлы cookie   -  person Xudong Peng    schedule 24.06.2021
comment
Я понятия не имею, что такое ОБ. Это не мой код, поэтому я предполагаю, что это код Google Picker. Разрешить сайтам сохранять и читать данные cookie (рекомендуется) включено.   -  person Jørgen Rasmussen    schedule 24.06.2021
comment
Основываясь на текущих результатах, я думаю, что это связано с настройками, связанными с файлами cookie. Вы включили блокировку сторонних файлов cookie? Если это так, попробуйте отключить его.   -  person Xudong Peng    schedule 25.06.2021