仅适用于在 Android 上远程调试 JS

Posted

技术标签:

【中文标题】仅适用于在 Android 上远程调试 JS【英文标题】:Only works with Debug JS Remotely on Android 【发布时间】:2019-01-30 18:48:28 【问题描述】:

我正在使用 AsyncStorage 存储来自 AWS 的 JWT 令牌,但我想澄清一个意外行为。

这是我当前的代码:

const retrieveJwt = async () => 
  try 
    const value = await AsyncStorage.getItem('jwt');
    if (value !== null) 
      return value;
    
    else      
      let user = await Auth.currentAuthenticatedUser();
      let jwt = user.signInUserSession.accessToken.jwtToken;
      return jwt
    
    catch (error) 
     // Error retrieving data
     let user = await Auth.currentAuthenticatedUser();
      let jwt = user.signInUserSession.accessToken.jwtToken;
      return jwt
   


// AppSync init
const client = new Client(
  url: AppSync.graphqlEndpoint,
  region: AppSync.region,
  auth:
    type: 'AMAZON_COGNITO_USER_POOLS',
    jwtToken: async () => await retrieveJwt(),
  ,
  disableOffline: true
)

当我运行这个应用程序时,我得到了这个:

android真机未调试:失败 Android 真机远程调试 JS:成功 没有调试的ios模拟器:成功 带有远程调试 JS 的 IOS 模拟器:成功

问题是 JWT 令牌似乎既不是由 AsyncStorage 也不是由 AWS Auth Class 检索,我无法解决它,因为:

    我在安卓真机上运行没有调试:不行。 我在带有调试功能的 Android 上运行:它可以工作。

所以我无法调试以查看问题所在,因为当我尝试在 Android 上调试时它可以工作。

希望有人可以帮助我。

【问题讨论】:

一个我还没有解决的奇怪行为... 我也有类似的问题。你解决了吗? 我放弃了 Apollo 客户端,现在我使用 aws-amplify 包中的 API.graphql。 【参考方案1】:

我在这里遇到了类似的问题。

我的问题不是我从 AsyncStorage 读取值,而是我试图保存一些值时。

当我使用远程调试器时,一切正常,但没有它,Error 出现了。

解决方案是将值转换为字符串,然后再将它们保存到存储中

【讨论】:

以上是关于仅适用于在 Android 上远程调试 JS的主要内容,如果未能解决你的问题,请参考以下文章

使用自签名证书在 chrome android 上远程调试 service worker

Android 安卓ADB命令远程调试 单个或多个设备调试

Android 安卓ADB命令远程调试 单个或多个设备调试

Android 安卓ADB命令远程调试 单个或多个设备调试

Android 安卓ADB命令远程调试 单个或多个设备调试

转: Android 设备的远程调试入门