Ionic inAppBrowser ExecuteScript выдает «Uncaught EvalError: отказался оценивать строку как JavaScript, поскольку unsafe-eval не является разрешенным источником»

Обновление от 25.06.23 :

Я вернулся к предыдущей версии своего приложения, и она работает, так что я явно что-то изменил за последние 6 месяцев.

Оригинал:

Когда я пытаюсь позвонить на страницу Твиттера, открытую в Ionic's@ionic-native/in-app-browserв эмуляторе Android я получаю эту ошибку с этой веб-страницы:

      Uncaught EvalError: Refused to evaluate a string as JavaScript because 'unsafe-eval' is not an allowed source of script in the following Content Security Policy directive: "script-src 'self' 'unsafe-inline' <and then some url's with wildcards which SO won't let me include in my question>".

Пытаюсь открыть страницу вот так:

      options = "location=yes,closebuttoncaption=" + buttonWording + ",usewkwebview=yes";
this.browserpopup = this.iab.create(this.temp_selected_link, '_blank', options);
this.browserpopup.on('loadstop').subscribe(event => {
      console.log('loadstop: event = ', event);
      console.log('About to call: this.browserpopup.executeScript');
      this.browserpopup.executeScript({
        code: "(function myFunction() { setTimeout(myFunction, 1000); const returnObject = {'url': '' } returnObject.url = window.location.href; return returnObject;} )()"
// I've cut down the code for brevity
      }, (returnObject) => {
        this.returnObject = returnObject;
        console.log('loadstop: returnObject = ', returnObject);
      })
    });

я ожидаюreturnObjectдля входа в консоль каждую секунду. Вместо этого я получаю ошибку, описанную выше, каждую секунду.

Это работает с другими веб-страницами, но Twitter выдает эту ошибку.

Раньше он работал с Twitter, но я думаю, они изменили свою политику CSP.

Я пробовал позвонить поwindow.openобъект, согласно этой проблеме , но затем я получаю сообщение об ошибкеexecuteScriptне является функциейwindow.

ionic info:

      Ionic:

   Ionic CLI                     : 7.1.1 
   Ionic Framework               : @ionic/angular 6.2.2
   @angular-devkit/build-angular : 14.1.2
   @angular-devkit/schematics    : 14.1.2
   @angular/cli                  : 14.1.2
   @ionic/angular-toolkit        : 2.3.3

Cordova:

   Cordova CLI       : 12.0.0 (cordova-lib@12.0.1)
   Cordova Platforms : android 11.0.0, ios 6.2.0
   Cordova Plugins   : cordova-plugin-ionic-webview 5.0.0, (and 18 other plugins)

Utility:

   cordova-res : 0.15.4
   native-run  : 1.7.2

System:

   Android SDK Tools : 26.1.1
   NodeJS            : v16.14.0
   npm               : 8.3.1
   OS                : Windows 10

ionic cordova plugin ls:

      com.telerik.plugins.nativepagetransitions 0.6.5 "Native Page Transitions"
cordova-admob-sdk 0.24.1 "AdMob SDK"
cordova-plugin-admob-free 0.27.0 "Cordova AdMob Plugin"
cordova-plugin-androidx-adapter 1.1.3 "cordova-plugin-androidx-adapter"
cordova-plugin-background-mode 0.7.3 "BackgroundMode"
cordova-plugin-badge 0.8.8 "Badge"
cordova-plugin-buildinfo 4.0.0 "BuildInfo"
cordova-plugin-camera 4.1.0 "Camera"
cordova-plugin-customurlscheme 5.0.2 "Custom URL scheme"
cordova-plugin-device 2.0.3 "Device"
cordova-plugin-file-transfer 1.7.1 "File Transfer"
cordova-plugin-file 6.0.2 "File"
cordova-plugin-firebase-messaging 7.0.4 "FirebaseMessagingPlugin"
cordova-plugin-inappbrowser 5.0.0 "InAppBrowser"
cordova-plugin-ionic-webview 5.0.0 "cordova-plugin-ionic-webview"
cordova-plugin-safariviewcontroller 2.0.0 "SafariViewController"
cordova-plugin-sign-in-with-apple 0.1.2 "cordova-plugin-sign-in-with-apple"
cordova-plugin-splashscreen 5.0.3 "Splashscreen"
cordova-plugin-statusbar 2.4.3 "StatusBar"
cordova-promise-polyfill 0.0.2 "cordova-promise-polyfill"
cordova-support-android-plugin 2.0.4 "cordova-support-android-plugin"

Любые предложения о том, как сделать эту работу, оценены по достоинству. Или любые альтернативные подходы, позволяющие получать данные со страницы Twitter в inAppBrowser.

0 ответов

Другие вопросы по тегам