我正在接管一个完全用法语写的应用程序.字符串在代码中用法语硬编码,故事板中的所有消息都是法语.但最初的开发区域Info.plist是留给英语的.所以我改变CFBundleDevelopmentRegion,以fr使其使用,真正的语言相匹配.但XCode一直告诉我,我的开发语言是英语:

我怎么能纠正这个?目标是能够激活基础国际化并使用法语作为基础语言而不是英语.
我正在尝试使用以下代码通过 FCM 从 Firebase Cloud 函数发送多播通知:
const message = {
tokens: recipients,
notification: {
title: title,
body: body
},
data: {
projectPartnerId: projectPartnerId
}
};
return admin.messaging().sendMulticast(message);
Run Code Online (Sandbox Code Playgroud)
并且没有发送任何推送通知。每个响应都包含一个带有相同消息的错误:“未找到请求的实体”。
我在 Google Cloud 控制台中启用了 API(Firebase 文档中没有提到它,但显然这是必要的)。我不知道我还能做什么。我能找到的所有其他问题都与 HTTP API 或遗留 API 相关。我使用的是最新版本的 Firebase Admin SDK。
我试图找出如何将Angular 2前端(在localhost:4200上运行)插入Grails 3后端(在localhost:8080上运行),因此我需要在grails应用程序中启用CORS支持.
我发现了这个Github项目(https://github.com/appcela/grails3-cors-interceptor-spring-security-rest-sample-app),它展示了如何使用grails3-cors-interceptor插件启用CORS.我正在运行这个应用程序作为测试后端,我正在设置一个断点CorsService.processPreflight()来检查它何时被调用.当我进行GET操作时/api/books,浏览器首先发送一个通过断点的OPTIONS调用,但是下面的GET似乎没有去那里,我无法弄清楚原因.任何的想法?
我在我的Grails 3.2.2应用程序中进行了集成测试,该测试应该检查CORS支持是否正常运行.当我启动应用程序并使用Paw或Postman之类的东西来执行请求时,我在CorsFilter中设置的断点显示我的标题设置正确.但是,当我使用RestBuilder进行集成测试时,使用以下代码执行相同的请求:
void "Test request http OPTIONS"() {
given: "JSON content request"
when: "OPTIONS are requested"
def rest = new RestBuilder()
def optionsUrl = url(path)
def resp = rest.options(optionsUrl) {
header 'Origin', 'http://localhost:4200'
header 'Access-Control-Request-Method', 'GET'
}
then: "they are returned"
resp.status == HttpStatus.SC_OK
!resp.json
}
Run Code Online (Sandbox Code Playgroud)
CorsFilter中的断点显示两个标头都为空:
奇怪的是,当我在RestTemplate中放置一个断点时,就在请求执行之前,标题就在那里:
我不明白这些标题会如何消失.任何的想法?
我今天早上将Angular 2.1.0项目升级到2.3.1,从那时起我的86个测试中有5个失败,出现以下错误:
失败:尝试分配给只读属性.set @ webpack:///~/@angular/core/src/facade/errors.js:43:33 < - src/test.ts:12465:52
这是最简单的失败测试:
/* tslint:disable:no-unused-variable */
import {async, ComponentFixture, TestBed} from '@angular/core/testing';
import {ProfileComponent} from './profile.component';
import {TranslateModule, TranslateService} from 'ng2-translate';
import {FormsModule} from '@angular/forms';
import {ProfileService} from '../profile.service';
import {ProfileServiceStub} from '../../../testing/profile-service-stub';
import {TranslateServiceStub} from '../../../testing/translate-service-stub';
import {NotificationsServiceStub} from '../../../testing/notifications-service-stub';
import {NotificationsService} from 'angular2-notifications';
describe('ProfileComponent', () => {
let component: ProfileComponent;
let fixture: ComponentFixture<ProfileComponent>;
const profileServiceStub = new ProfileServiceStub(5000);
beforeEach(async(() => {
TestBed.configureTestingModule({
declarations: [ProfileComponent],
imports: [
TranslateModule, FormsModule
],
providers: [
{provide: …Run Code Online (Sandbox Code Playgroud) 我正在尝试将来自blueimp的优秀jquery-file-upload集成到Grails 2.0中,并为此编写一个新的插件.我知道已经有一个插件,但它没有使用资源,它已经有9个月没有更新了,而且jquery-file-upload在那段时间里发生了很大的变化.
所以我把发行版的所有文件放在我的插件中,现在我正在尝试编写一个可以处理上传的控制器动作.问题是request.getFileNames()只给我一个files[]条目,我不知道如何检索我上传的3个单独的文件.
你如何处理这样的输入发送的文件:<input type="file" name="files[]" multiple>?
我正在尝试使用JS SDK从Web应用程序匿名登录,它在某些环境下效果很好,但是在一个环境下,与其他地方完全相同的代码却给了我403:
(索引):64 {“错误”:{“代码”:403,“消息”:“来自引荐来源网址https://myapp.firebaseapp.com/的请求被阻止。”,“错误”:[{“消息”: “来自引荐来源网址https://myapp.firebaseapp.com/的请求已被阻止。”,“域”:“全局”,“原因”:“禁止”}],“状态”:“ PERMISSION_DENIED”}}
但是我认为我检查了所有环境下的所有内容是否相同:启用了匿名身份验证,并且我的Web应用程序位于Firebase Hosting上,因此代码应与环境无关。
知道这可能来自哪里吗?
我有一个自定义BLE外围设备,它发布这样的数据:
换句话说,我的BLE外设会在已发布的服务数据中发布与唯一标识符关联的服务UUID,但不会将该服务UUID添加到已发布的服务列表中,因为如果这样做,则BLE框架中没有空间在需要时添加电池电量。
在iOS上,我可以使用基于服务UUID的过滤器进行扫描,并查看我的外围设备。但是在Android上,使用以下扫描过滤器,我看不到外围设备:
val scanSettingsBuilder = ScanSettings.Builder()
.setScanMode(ScanSettings.SCAN_MODE_LOW_LATENCY)
.setReportDelay(0L)
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
scanSettingsBuilder
.setCallbackType(ScanSettings.CALLBACK_TYPE_ALL_MATCHES)
.setMatchMode(ScanSettings.MATCH_MODE_AGGRESSIVE)
.setNumOfMatches(ScanSettings.MATCH_NUM_ONE_ADVERTISEMENT)
}
bluetoothAdapter?.bluetoothLeScanner?.startScan(
arrayListOf(ScanFilter.Builder().setServiceUuid(ParcelUuid(UUID.fromString("00004865-726f-6e54-7261-636b2d475053"))).build()),
scanSettingsBuilder.build(),
leScanCallback
)
Run Code Online (Sandbox Code Playgroud)
是否有人有更多关于基于serviceUUID的扫描过滤器如何工作的详细信息,并且外围设备必须满足哪些条件才能被过滤器接受?
当我尝试运行我的Grails 2.4.1应用程序时,我得到以下异常,我不太明白.
| Running Grails application
objc[15346]: Class JavaLaunchHelper is implemented in both /Library/Java/JavaVirtualMachines/jdk1.7.0_51.jdk/Contents/Home/bin/java and /Library/Java/JavaVirtualMachines/jdk1.7.0_51.jdk/Contents/Home/jre/lib/libinstrument.dylib. One of the two will be used. Which one is undefined.
| Error 2014-06-19 16:54:40,048 [localhost-startStop-1] ERROR context.GrailsContextLoaderListener - Error initializing the application: org/hibernate/event/spi/PreLoadEventListener
Message: org/hibernate/event/spi/PreLoadEventListener
Line | Method
->> 800 | defineClass in java.lang.ClassLoader
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - …Run Code Online (Sandbox Code Playgroud) 我在一个有状态小部件中有一个简单的 Flutter 表单,其中包含一堆文本字段来捕获信用卡详细信息。当我显示此表单时,点击第一个字段,在其中输入内容,然后点击第二个字段,焦点不会转移到第二个字段,光标停留在第一个字段,即使两个字段都显示为焦点(边框是两者都可见),当我输入时,它进入第一个字段。在第二个字段中输入内容的唯一方法是长按它,就像我想在其中粘贴一些东西一样。在控制台中,我看到了这个:
[VERBOSE-2:ui_dart_state.cc(199)] Unhandled Exception: A FocusNode was used after being disposed.
Once you have called dispose() on a FocusNode, it can no longer be used.
#0 ChangeNotifier._debugAssertNotDisposed.<anonymous closure> (package:flutter/src/foundation/change_notifier.dart:117:9)
#1 ChangeNotifier._debugAssertNotDisposed (package:flutter/src/foundation/change_notifier.dart:123:6)
#2 ChangeNotifier.notifyListeners (package:flutter/src/foundation/change_notifier.dart:234:12)
#3 FocusNode._notify (package:flutter/src/widgets/focus_manager.dart:1052:5)
#4 FocusManager._applyFocusChange (package:flutter/src/widgets/focus_manager.dart:1800:12)
#5 _rootRun (dart:async/zone.dart:1346:47)
#6 _CustomZone.run (dart:async/zone.dart:1258:19)
#7 _CustomZone.runGuarded (dart:async/zone.dart:1162:7)
Run Code Online (Sandbox Code Playgroud)
问题是没有一个字段具有焦点节点集,因此 Flutter 表单状态内部似乎发生了一些错误。有人见过这个吗?
请注意,对我来说,它发生在网络和移动设备上,但并非始终如一。
这是有问题的表单的代码。
这是一个屏幕截图,说明 2 个字段同时具有焦点,并且光标停留在第一个字段中。当我在键盘上输入内容时,它会指向第一个字段。这是在物理 iPhone 设备上运行的。
这里是被称为该功能onPressed的ElevatedButton显示格式如下:
Future<void> _addPaymentMethod(BuildContext context) async {
await Navigator.push(
context,
MaterialPageRoute(
builder: (context) …Run Code Online (Sandbox Code Playgroud) grails ×4
firebase ×2
rest ×2
testing ×2
android ×1
android-ble ×1
angular ×1
cors ×1
file-upload ×1
flutter ×1
ios ×1
javascript ×1
jquery ×1
spring ×1
xcode ×1