WLAuthorizationManager.obtainAccessToken() 在一个环境中工作正常,但在另一个环境中被破坏

WLAuthorizationManager.obtainAccessToken() works fine in one environment but is broken in another

我正在尝试调用 WLAuthorizationManager.obtainAccessToken(),但它在我的 Mac 上调用了错误函数,但在我的 PC 上成功了。我在两者上使用的代码示例如下:

  waitingForMFP (renderer: Renderer) {
  this.tlpLogger.toLog('debug','-- Homepage waitingForMFP');
    renderer.listenGlobal ('document', 'mfpjsloaded', () => {
      this.tlpLogger.toLog('debug','-- Homepage waitingForMFP: The global event mfpjsloaded has been thrown');        
      WLAuthorizationManager.obtainAccessToken()
      .then(
          function(accessToken) {
            this.tlpLogger.toLog('debug','-- Homepage waitingForMFP: Access token has been granted');
          }.bind(this), 
          function(error) {
            this.tlpLogger.toLog('warn','-- Homepage waitingForMFP: Access token failed: ' + JSON.stringify(error));   
            this.ngZone.run();  
          }.bind(this)
      );
  })
  }

在这两种情况下,我都试图在 Android 设备上进行模拟。当我打印出 "error" 对象时,我得到以下信息:

{"status":-1,"responseText":"","errorMsg":"This version of the MobileFirst client SDK requires a minimal server version greater than IFIX 8.0.0.0-IF20161122-19","errorCode":"MINIMUM_SERVER"}

这条消息对我来说毫无意义,因为它们都在 Bluemix 上访问同一台服务器,所以如果这是一个问题,我应该会在两种环境中收到相同的消息。当我在两个环境中检查 mfp cli 的版本时,我得到相同的答案:

$ mfpdev -v
8.0.0-2016121916

我已经尝试在两种环境中调用 "mfpdev app register",但似乎没有什么不同。

我在两种环境的控制台日志(下方)中都收到另一个错误,但由于它是在 obtainAccessToken() 方法之后出现的,并且它发生在两种环境中,我认为它是无关的(尽管我正在尝试另一个问题讲话)。消息是:

Uncaught TypeError: Cannot read property 'apply' of undefined

电脑:

02-07 16:08:32.568 7485-7485/com.ionicframework.tlpapp360156 I/chromium: [INFO:CONSOLE(60929)] "-- Homepage waitingForMFP", source: file:///android_asset/www/build/main.js (60929)
02-07 16:08:32.645 7485-7485/com.ionicframework.tlpapp360156 I/chromium: [INFO:CONSOLE(2505)] "Angular 2 is running in the development mode. Call enableProdMode() to enable the production mode.", source: file:///android_asset/www/build/main.js (2505)
02-07 16:08:32.690 7485-7485/com.ionicframework.tlpapp360156 I/chromium: [INFO:CONSOLE(111840)] "DEVICE READY FIRED AFTER", source: file:///android_asset/www/build/main.js (111840)
02-07 16:08:32.698 7485-7485/com.ionicframework.tlpapp360156 I/chromium: [INFO:CONSOLE(3)] "Running static_app_props.js...", source: file:///android_asset/www/plugins/cordova-plugin-mfp/worklight/static_app_props.js (3)
02-07 16:08:32.884 7485-7485/com.ionicframework.tlpapp360156 I/chromium: [INFO:CONSOLE(60929)] "-- Homepage waitingForMFP: The global event mfpjsloaded has been thrown", source: file:///android_asset/www/build/main.js (60929)
02-07 16:08:32.887 7485-7485/com.ionicframework.tlpapp360156 I/chromium: [INFO:CONSOLE(73)] "Calling WL.Client.init(wlInitOptions);", source: file:///android_asset/www/plugins/cordova-plugin-mfp/bootstrap.js (73)
02-07 16:08:32.902 7485-7485/com.ionicframework.tlpapp360156 I/chromium: [INFO:CONSOLE(0)] "Synchronous XMLHttpRequest on the main thread is deprecated because of its detrimental effects to the end user's experience. For more help, check http://xhr.spec.whatwg.org/.", source:  (0)
02-07 16:08:33.521 7485-7485/com.ionicframework.tlpapp360156 I/chromium: [INFO:CONSOLE(60929)] "-- Homepage waitingForMFP: Access token has been granted", source: file:///android_asset/www/build/main.js (60929)
02-07 16:08:33.547 7485-7485/com.ionicframework.tlpapp360156 I/chromium: [INFO:CONSOLE(312)] "Error in Success callbackId: WLAuthorizationManagerPlugin756181927 : TypeError: Cannot read property 'apply' of undefined", source: file:///android_asset/www/cordova.js (312)
02-07 16:08:33.554 7485-7485/com.ionicframework.tlpapp360156 I/chromium: [INFO:CONSOLE(314)] "Uncaught TypeError: Cannot read property 'apply' of undefined", source: file:///android_asset/www/cordova.js (314)

Mac:

02-07 16:07:12.240 4122-4122/com.ionicframework.tlpapp360156 I/chromium: [INFO:CONSOLE(60929)] "-- Homepage waitingForMFP", source: file:///android_asset/www/build/main.js (60929)
02-07 16:07:12.352 4122-4122/com.ionicframework.tlpapp360156 I/chromium: [INFO:CONSOLE(2505)] "Angular 2 is running in the development mode. Call enableProdMode() to enable the production mode.", source: file:///android_asset/www/build/main.js (2505)
02-07 16:07:12.418 4122-4122/com.ionicframework.tlpapp360156 I/chromium: [INFO:CONSOLE(111846)] "Native: deviceready did not fire within 2000ms. This can happen when plugins are in an inconsistent state. Try removing plugins from plugins/ and reinstalling them.", source: file:///android_asset/www/build/main.js (111846)
02-07 16:07:12.422 4122-4122/com.ionicframework.tlpapp360156 I/chromium: [INFO:CONSOLE(111841)] "DEVICE READY FIRED AFTER", source: file:///android_asset/www/build/main.js (111841)
02-07 16:07:12.433 4122-4122/com.ionicframework.tlpapp360156 I/chromium: [INFO:CONSOLE(3)] "Running static_app_props.js...", source: file:///android_asset/www/plugins/cordova-plugin-mfp/worklight/static_app_props.js (3)
02-07 16:07:12.779 4122-4122/com.ionicframework.tlpapp360156 I/chromium: [INFO:CONSOLE(60929)] "-- Homepage waitingForMFP: The global event mfpjsloaded has been thrown", source: file:///android_asset/www/build/main.js (60929)
02-07 16:07:12.790 4122-4122/com.ionicframework.tlpapp360156 I/chromium: [INFO:CONSOLE(73)] "Calling WL.Client.init(wlInitOptions);", source: file:///android_asset/www/plugins/cordova-plugin-mfp/bootstrap.js (73)
02-07 16:07:12.813 4122-4122/com.ionicframework.tlpapp360156 I/chromium: [INFO:CONSOLE(0)] "Synchronous XMLHttpRequest on the main thread is deprecated because of its detrimental effects to the end user's experience. For more help, check http://xhr.spec.whatwg.org/.", source:  (0)
02-07 16:07:13.294 4122-4122/com.ionicframework.tlpapp360156 I/chromium: [INFO:CONSOLE(60917)] "-- Homepage waitingForMFP: Access token failed: {"status":-1,"responseText":"","errorMsg":"This version of the MobileFirst client SDK requires a minimal server version greater than IFIX 8.0.0.0-IF20161122-19","errorCode":"MINIMUM_SERVER"}", source: file:///android_asset/www/build/main.js (60917)
02-07 16:07:13.315 4122-4122/com.ionicframework.tlpapp360156 I/chromium: [INFO:CONSOLE(312)] "Error in Error callbackId: WLAuthorizationManagerPlugin1973171517 : TypeError: Cannot read property 'apply' of undefined", source: file:///android_asset/www/cordova.js (312)
02-07 16:07:13.326 4122-4122/com.ionicframework.tlpapp360156 I/chromium: [INFO:CONSOLE(314)] "Uncaught TypeError: Cannot read property 'apply' of undefined", source: file:///android_asset/www/cordova.js (314)

如有任何帮助,我们将不胜感激!

首先,检查 CLI 版本以检查兼容性并不重要...CLI 不会像以前的版本那样实例化服务器实例或将 SDK 添加到应用程序...因此它的版本不太重要.

Cordova plug-ins 的最新更新引入了 client-server 不兼容错误。

我建议您:

  1. 更新服务器(昨天更新了Mobile Foundation服务),删除plug-in和re-add,然后重试
  2. 删除 plug-in 和 re-add 它,然后重试,尽管始终建议同时更新服务器