小编Drk*_*Str的帖子

Flutter web 中的 XMLHttpRequest 错误 [启用 CORS AWS API 网关]

注意:事实证明,这与颤振无关,而与我将 API 网关设置为 Lambda 代理这一事实有关

我试图从 Flutter Web 应用程序访问 API 端点,每次它出错并给我以下错误。

获取传感器数据时出错:DioError [DioErrorType.RESPONSE]:XMLHttpRequest 错误。

我知道这里有几个关于 SO(像这个这个)的问题在讨论这个问题,解决方案似乎是在服务器端启用 CORS 支持。我正在使用 AWS API 网关来构建 API,我按照这些说明从我的 API 启用 CORS 支持。这是我在 API 网关控制台中的 CORS 设置。

在此处输入图片说明

“Access-Control-Allow-headers”中的文本是

'内容类型,X-Amz-日期,授权,X-Api-Key,X-Amz-Security-Token'

在 API 网关上启用 CORS 似乎没有帮助,当我尝试点击 API 时,我的 flutter Web 应用程序仍然遇到相同的错误。

有趣的是,如果我从 chrome 中点击 API(即在浏览器上粘贴 API URL 并点击回车),API 工作得非常好。只有当我尝试从 Flutter Web 应用程序访问 API 时它才会失败。

问题:如何在我的 API 网关中启用 CORS 支持,以便我的 Flutter Web 应用程序可以使用 API?

cors aws-api-gateway flutter flutter-web

22
推荐指数
4
解决办法
3万
查看次数

活动识别API

在最近的Google Play服务更新中,任何人都无法使用活动识别API吗?

我在应用程序中实现了它.它在5.0更新之前完全正常工作.现在它IN_VEHICLE在用户走路或坐着时返回.:/

并且不会返回WALKING,RUNNING或者根本不会ON_FOOT.

我应该注意哪些活动识别API有任何变化?

如果您需要更多详细信息,请与我们联系.

android google-play-services activity-recognition

14
推荐指数
1
解决办法
9151
查看次数

从片段在我的工具栏上设置字幕

我在片段中设置工具栏中的子标题时遇到了一些麻烦.我一直在setSubTitle得到一个空指针异常.

@Override
public void onActivityCreated(Bundle savedInstanceState) {
    super.onActivityCreated(savedInstanceState);

    getActivity().getActionBar().setSubtitle("About"); // NULL POINTER EXCEPTION here
}
Run Code Online (Sandbox Code Playgroud)

将工具栏添加到主机活动:

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    toolbar = (Toolbar) findViewById(R.id.toolbar);
    if (toolbar != null) {
        Log.w("Rakshak", "Toolbar is not null");

        setSupportActionBar(toolbar);
    }
}
Run Code Online (Sandbox Code Playgroud)

我的style.xml

 <style name="AppTheme.Base" parent="Theme.AppCompat.Light.DarkActionBar">
    <item name="colorPrimary">#1A7E99</item>
    <item name="colorPrimaryDark">#16657A</item>
    <item name="android:windowNoTitle">true</item>
    <item name="windowActionBar">false</item>        
</style>
Run Code Online (Sandbox Code Playgroud)

这是Logcat:

11-12 11:24:15.580: E/AndroidRuntime(22183): FATAL EXCEPTION: main
11-12 11:24:15.580: E/AndroidRuntime(22183): java.lang.NullPointerException
11-12 11:24:15.580: E/AndroidRuntime(22183):    at com.driverdesignstudio.drvr.About.onActivityCreated(About.java:63)
11-12 11:24:15.580: E/AndroidRuntime(22183):    at android.app.Fragment.performActivityCreated(Fragment.java:1703)
11-12 11:24:15.580: E/AndroidRuntime(22183):    at android.app.FragmentManagerImpl.moveToState(FragmentManager.java:903) …
Run Code Online (Sandbox Code Playgroud)

android android-appcompat android-fragments android-actionbar android-toolbar

10
推荐指数
1
解决办法
2万
查看次数

传单地图的麻烦(GET mapbox tiles未经授权401)

我正在尝试将传单映射添加到我的网页,我正在使用Mapbox磁贴.我无法让基本教程中的地图工作,我所看到的只是一个灰色屏幕.我有一个来自mapbox的mp id,我已将它添加到我的代码中.附上以下相关代码.

var map = L.map('map').setView([51.505, -0.09], 13);
    L.tileLayer('http://{s}.tiles.mapbox.com/v3/rakshak.l937n12c/{z}/{x}/{y}.png', {
    attribution: 'Map data &copy; <a href="http://openstreetmap.org">OpenStreetMap</a> contributors, <a href="http://creativecommons.org/licenses/by-sa/2.0/">CC-BY-SA</a>, Imagery © <a href="http://mapbox.com">Mapbox</a>',
    maxZoom: 18
    }).addTo(map);
Run Code Online (Sandbox Code Playgroud)

这就是我在控制台中看到的:

GET http://a.tiles.mapbox.com/v4/rakshak.l937n12c/13/4093/2723.png 401 (Unauthorized)
Run Code Online (Sandbox Code Playgroud)

在css我刚刚将地图高度设置为高度:100vh.

我在屏幕上看到的只有地图变焦控制器和灰色屏幕.我错过了一个重要的步骤吗?

编辑1:更新JS代码:

var map = L.map('map').setView([51.505, -0.09], 13);
L.tileLayer('http://api.tiles.mapbox.com/v4/rakshak.l937n12c/{z}/{x}/{y}.{format}?access_token=pk.eyJ1IjoicmFrc2hhayIsImEiOiJ5cHhqeHlRIn0.Vi87VjI1cKbl1lhOn95Lpw', {
attribution: 'Map data &copy; <a href="http://openstreetmap.org">OpenStreetMap</a> contributors, <a href="http://creativecommons.org/licenses/by-sa/2.0/">CC-BY-SA</a>, Imagery © <a href="http://mapbox.com">Mapbox</a>',
maxZoom: 18
}).addTo(map);
Run Code Online (Sandbox Code Playgroud)

leaflet mapbox

9
推荐指数
1
解决办法
6982
查看次数

在 Lambda 函数中使用 axios 时设置先前请求的 cookie

我在 NodeJs 应用程序中使用 Axios 来执行 HTTP 请求。

我使用 post 请求登录,不需要在标头中设置 cookie。

const instance = axios.create({ baseURL: 'https://some_url.com' , withCredentials: true});
const response = await instance.post('auth/login', data);
Run Code Online (Sandbox Code Playgroud)

这会set-cookie在其标头中返回一个我需要在所有后续 API 调用中使用的标头。这是我为此尝试过的代码。

const getResponse = await instance.get('/getStuff?$top=10', { withCredentials: true });
Run Code Online (Sandbox Code Playgroud)

这总是返回“未登录错误”。我无权访问服务器,但我假设这是因为我的获取请求没有在其标头中发送 cookie。

在 lambda 中运行所有这些,不确定这是否会产生影响。

问题:如何从第一个请求中获取 cookie并在我的请求post中使用它?get

node.js aws-lambda axios

9
推荐指数
1
解决办法
1万
查看次数

获取 AWS CLI 中当前设置的配置文件

我在我的 AWS 配置文件中设置了一些配置文件。如何检查当前配置文件的设置?

我不想获取配置文件上设置的值: https: //docs.aws.amazon.com/cli/latest/reference/configure/get.html

我不是在寻找配置文件列表: https://awscli.amazonaws.com/v2/documentation/api/latest/reference/configure/list-profiles.html

问题:如何在 AWS CLI 中检查我当前活动的配置文件?

amazon-web-services aws-cli

9
推荐指数
1
解决办法
8988
查看次数

当手机进入待机状态时,活动识别停止接收更新(屏幕关闭状态)

我在活动识别方面遇到了一些麻烦.我已经在应用程序中实现了它,当设备的屏幕打开时它可以正常工作.我的Activity识别意图服务类中有一个日志条目,我可以看到它何时获得更新.所以,我知道它在屏幕打开时工作正常.

但是在手机进入待机状态(屏幕关闭)后,它会停止检测使用活动.

我没有调用DetectionRequester类中的onDisconnected(),我使用日志帖子进行了检查.

我的问题:为什么我的应用会在设备进入待机模式后停止跟踪使用活动?如何让它不停止检测用户活动?

如果您需要查看任何代码或者您需要有关我的应用程序的更多详细信息,请告诉我们.

我的MainActivity类的相关代码位.这是应用程序启动ActivityRecognition请求的位置.

public class MainActivity extends FragmentActivity  {

// The activity recognition update request object
private DetectionRequester mDetectionRequester;

// The activity recognition update removal object
private DetectionRemover mDetectionRemover;


// Store the current request type (ADD or REMOVE)
private REQUEST_TYPE mRequestType;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);     
    //Crashlytics.start(this);
    setContentView(R.layout.activity_main);

    mDetectionRequester = new DetectionRequester(this);
    mDetectionRemover = new DetectionRemover(this);

    // Check for Google Play services
     if (servicesConnected()) 
     {
        /*
         *Set the request type. If a connection error occurs, …
Run Code Online (Sandbox Code Playgroud)

android google-play-services location-client activity-recognition

8
推荐指数
1
解决办法
3937
查看次数

将数据发送到我的(主屏幕)小部件

我在从我的活动向appWidgetProvide类发送数据(字符串)时遇到了一些麻烦.

我有一个名为updateWidget的方法.当窗口小部件首次放置在主屏幕中时,窗口小部件配置活动会调用此方法.当用户将数据输入到该活动时,当它从我的一个活动接收数据时,onReceive方法也会调用此方法.

这是我的问题:小部件放在主屏幕中,所有数据都在正确的位置.但是当我的活动发送数据onReceive(使用意图和额外)时,数据不会通过.我只是在extras.getString上得到一个空字符串.

我之前使用过Intent来在活动之间发送数据,当我将数据发送到widget提供类时,是否需要做一些不同的事情?或者我只是愚蠢而且缺少明显的东西?

我附上了(我认为是)相关的代码.如果您需要任何澄清或更多代码,请与我们联系.

感谢您花时间阅读本文以及您可以提供的任何帮助,

干杯罗刹克

widget配置类中的onListItemClick.

@Override
    protected void onListItemClick(ListView l, View v, int position, long id) {
        super.onListItemClick(l, v, position, id);

        Cursor note = mDbHelper.fetchNote(id);
        startManagingCursor(note);
        String title = note.getString(note.getColumnIndexOrThrow(NotesDbAdapter.KEY_TITLE));
        String text = note.getString(note.getColumnIndexOrThrow(NotesDbAdapter.KEY_BODY));
        loadData(title);


        Intent resultValue = new Intent();
        resultValue.putExtra(AppWidgetManager.EXTRA_APPWIDGET_ID, mAppWidgetId);            
        setResult(RESULT_OK,resultValue);   
        finish();
 }



 void loadData(String title) {

    AppWidgetManager appWidgetManager = AppWidgetManager.getInstance(this); 

    SingleNote.updateWidget(this, appWidgetManager, mAppWidgetId, title);

}
Run Code Online (Sandbox Code Playgroud)

将数据发送到onReceive的意图(这是我的一个活动类)

private void updateWidget() { 
    Intent i = new Intent(this, SingleNote.class); 
    i.setAction(SingleNote.UPDATE_ACTION); 
    Toast.makeText(getApplicationContext(),mTitleText.getText()+"from the activity",
            Toast.LENGTH_SHORT).show();//This works just fine …
Run Code Online (Sandbox Code Playgroud)

android android-widget

7
推荐指数
1
解决办法
2899
查看次数

Android studio 中运行和热重载 flutter 的问题(坏状态:未来已经完成)

此问题已提交至 Flutter github问题:https : //github.com/flutter/flutter/issues/27450

我在 Android Studio 中运行和热重新加载 Flutter 应用程序时遇到了一些麻烦。

当我在 Android Studio 中运行应用程序时,我时不时地收到以下消息(3 次运行中的 2 次)并且构建失败。

Launching lib/main.dart on iPhone XR in debug mode...
Unhandled exception:
Bad state: Future already completed
#0      _AsyncCompleter.complete (dart:async/future_impl.dart:39:31)
#1      _NativeSocket.startConnect.<anonymous closure>.connectNext.<anonymous closure> (dart:io/runtime/binsocket_patch.dart:490:23)
#2      _NativeSocket.issueWriteEvent.issue (dart:io/runtime/binsocket_patch.dart:844:14)
#3      _NativeSocket.issueWriteEvent (dart:io/runtime/binsocket_patch.dart:851:12)
#4      _NativeSocket.multiplex (dart:io/runtime/binsocket_patch.dart:872:11)
#5      _RawReceivePortImpl._handleMessage (dart:isolate/runtime/libisolate_patch.dart:171:12)
Run Code Online (Sandbox Code Playgroud)

我根本无法让热重载工作

Performing hot reload...
Syncing files to device iPhone XR...
Unhandled exception:
Bad state: Future already completed
#0      _AsyncCompleter.complete (dart:async/future_impl.dart:39:31)
#1      _NativeSocket.startConnect.<anonymous closure>.connectNext.<anonymous closure> (dart:io/runtime/binsocket_patch.dart:490:23)
#2 …
Run Code Online (Sandbox Code Playgroud)

flutter

6
推荐指数
1
解决办法
1608
查看次数

在 Flutter 中使用 MockClient 进行测试时遇到问题

我正在尝试使用 MockClient 在 flutter 中编写一个简单的测试,但我似乎无法让它工作。

这是我试图测试的代码:

getItemById(int id) async {
   final response = await client.get("$_host/item/$id.json");
   final decodedJson = json.decode(response.body);

   return Item.fromJson(decodedJson);
}
Run Code Online (Sandbox Code Playgroud)

这是测试代码:

test("Test getting item by id", () async {
   final newsApi = NewsAPI();
   newsApi.client = MockClient((request) async {
      final jsonMap = {'id': 123};
      Response(json.encode(jsonMap), 200);
   });

   final item = await newsApi.getItemById(123);
   print("Items:  ${item.toString()}"); //<-- dosen't print anything. 
   expect(item.id , 123);
});
Run Code Online (Sandbox Code Playgroud)

当我运行测试时,它失败并显示以下消息:

 NoSuchMethodError: The getter 'bodyBytes' was called on null.
 Receiver: null
 Tried calling: bodyBytes
Run Code Online (Sandbox Code Playgroud)

我猜测这里的问题是,当我调用 getItemById 方法时,MockClient …

flutter flutter-test

6
推荐指数
1
解决办法
2071
查看次数