Ionic 5 应用未在 android 上从 REST API 获取数据

Ionic 5 app not getting data from REST API on android

我构建了一个离子应用程序,它利用 Vue、Capacitor 和部署在 heroku 上的 Strapi 后端。我正在使用 fetch() api 进行 api 调用。

该应用程序在浏览器中正常运行,但当符合 android 并安装在我的设备上时 (Android 9) 我在我使用的主页上显示 SyntaxError: Unexpected token < in JSON at position 0 Vue 的 <Suspense> 组件显示错误信息。

所有其他页面都是空白的,我无法执行 POST 个请求。

这是我的第一个离子和移动应用程序,所以我不确定如何调试这个问题。

我建议您使用 capacitor http plugin 从移动设备拨打 API 电话:https://github.com/capacitor-community/http 您也可以使用此插件避免 CORS 问题。

文档中缺少Android的配置,按如下方式添加。

1- 在android\app\src\main\java\MainActivity.java

中导入并添加http插件
package com.myapp.com;

import android.os.Bundle;

import com.getcapacitor.BridgeActivity;
import com.getcapacitor.Plugin;

import java.util.ArrayList;
import com.getcapacitor.plugin.http.Http; //added

public class MainActivity extends BridgeActivity {
  @Override
  public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    // Initializes the Bridge
    this.init(savedInstanceState, new ArrayList<Class<? extends Plugin>>() {{
      // Additional plugins you've installed go here
      // Ex: add(TotallyAwesomePlugin.class);
      add(Http.class); //added
    }});
  }
}

2- 在 Android Studio 中同步 gradle 文件:

File --> Sync Project with Gradle Files

package.json中,依赖项应该如下所示:

"@capacitor-community/http": "^1.0.0",
"@capacitor/android": "^3.0.0",
"@capacitor/core": "^3.0.0",