当键盘显示时,我希望我的消息输入栏浮动在键盘上方,但看起来在Ionic 2中没有键盘附加指令(如v1)(可能在工作中?).有没有替代/解决方法?
目前的行为:
通缉行为:
这是我的消息输入栏的代码:
<ion-toolbar position="bottom" *ngIf="userIsAdmin">
<form (ngSubmit)="onSubmit(f)" #f="ngForm" class="message-form">
<ion-badge class="message-form-badge">Admin</ion-badge>
<ion-input type="text" placeholder="Type a message..." ngControl="messageInput"></ion-input>
<button type="submit" small class="message-form-button">Send <ion-icon name="send"></ion-icon></button>
</form>
</ion-toolbar>
Run Code Online (Sandbox Code Playgroud) 在运行时,ionic g page pageName我会生成.ts,.css和.html文件.
在.ts文件中,我有一个调用的函数ionViewDidLoad(){},在我的视图出现之前会打印出来.
我相信这可以在构造函数中完成吗?
有人可以给我一些关于这个功能的博客或解释吗?
有没有办法在离子2吐司中设置文本消息的样式?
我试过这个:
let toast = Toast.create({
message: "Some text on one line. <br /><br /> Some text on another line.",
duration: 15000,
showCloseButton: true,
closeButtonText: 'Got it!',
dismissOnPageChange: true
});
toast.onDismiss(() => {
console.log('Dismissed toast');
});
this.nav.present(toast);
}Run Code Online (Sandbox Code Playgroud)
但显然你不能在文本中使用html所以我猜我的问题的答案是否定的?
目前Angular 2中有一种方法可以使用angular2/http模块检索ajax调用的进度(即完成百分比)吗?
我使用以下代码进行HTTP调用:
let body = JSON.stringify(params);
let headers = new Headers({ 'Content-Type': 'application/json' });
let options = new RequestOptions({ headers: headers });
this.http.post(url, body, options)
.timeout(10000, new Error('Timeout exceeded during login'))
.toPromise()
.then((res) => {
...
}).catch((err) => {
...
});
Run Code Online (Sandbox Code Playgroud)
目标是编写同步系统.该帖子将返回大量数据,我想让用户了解同步需要多长时间.
我正在尝试记录用户单击导航栏中生成的后退按钮的操作,但我找不到处理点击事件的方法?
看起来这里的离子导航后退按钮不再起作用了?
我想在每次页面更改时执行一些代码.
我可以ngOnDestroy为每个页面添加一个方法.似乎我可以使用Ionic 2页面生命周期钩子(例如ionViewDidUnload)获得完全相同的效果,但我没有费心去测试它.我宁愿在主app类中添加一个方法.
我看到你可以订阅Angular 2 路由器事件.如何翻译用于Ionic 2?我首先得到一个错误import { Router } from '@angular/router;:
TypeScript error: <path>/node_modules/@angular/router/src/common_router_providers.d.ts(9,55): Error TS2305: Module '"<path>/node_modules/@angular/core/index"' has no exported member 'NgModuleFactoryLoader'.
TypeScript error: <path>/node_modules/@angular/router/src/router.d.ts(14,39): Error TS2305: Module '"<path>/node_modules/@angular/core/index"' has no exported member 'NgModuleFactoryLoader'.
TypeScript error: <path>/node_modules/@angular/router/src/router_module.d.ts(9,10): Error TS2305: Module '"<path>/node_modules/@angular/core/index"' has no exported member 'ModuleWithProviders'.
Run Code Online (Sandbox Code Playgroud)
webpack配置
var path = require('path');
module.exports = {
entry: [
path.normalize('es6-shim/es6-shim.min'),
'reflect-metadata',
path.normalize('zone.js/dist/zone'),
path.resolve('app/app.ts')
],
output: {
path: path.resolve('www/build/js'),
filename: 'app.bundle.js',
pathinfo: false …Run Code Online (Sandbox Code Playgroud) 我在我的Web应用程序中集成spring security(即登录部分)时遇到了一些麻烦.我的BackEnd在localhost:8080上运行,FrontEnd(Ionic 2与AngularJS 2)在localhost:8100上运行.我设法登录(至少我是这么认为),但其他请求变得不可用,我在Chrome开发者控制台中收到以下错误:
XMLHttpRequest cannot load http://localhost:8080/company/getAll. Response for preflight is invalid (redirect)
Run Code Online (Sandbox Code Playgroud)
当使用Postman进行测试时,它似乎正在工作,我登录然后我能够在http:// localhost:8080/company/getAll上执行POST请求,一切都按预期工作.
据推测,我错过了某些东西(比如令牌)但却无法弄清楚是什么.我是Ionic和Spring Security的新手,所以请原谅我,如果这是微不足道的话.我尝试使用谷歌搜索各种教程,但无法找到任何东西(大多数都使用JSP).
我怎么能让这个工作?我的前端请求应该怎么样?
这是我从BackEnd控制器登录的方法:
@RequestMapping(value = "/login", method = RequestMethod.GET)
@CrossOrigin(origins = "*")
public ResponseEntity<GeneralResponse> login(Model model, String error, String logout) {
System.out.println("LOGIN"+model.toString());
if (error != null) {
System.out.println("1.IF");
model.addAttribute("error", "Your username and password is invalid.");
}
if (logout != null) {
System.out.println("2.IF");
model.addAttribute("message", "You have been logged out successfully.");
}
return ResponseEntity.status(HttpStatus.INTERNAL_SERVER_ERROR).body(new GeneralResponse(true, "FAILURE: Error"));
}
Run Code Online (Sandbox Code Playgroud)
这是我的WebSecurityConfig: …
我在Google Play商店中安装了Android APK,目标SDK为23.
我发布了一个新版本(相同的目标SDK),谷歌向我显示了这个错误:
如果我继续(我学到了很多困难),那么当前用户都无法升级到此版本.我不得不恢复代码,增加内部版本号并重建APK以"回滚"到可用版本.
但是,我无法解决为什么谷歌向我显示此错误.请注意,"0支持的Android设备"是一个红色鲱鱼 - 它是过去24小时内Google Play中的一个已知问题 - 如果您发布APK,则会显示实际数量的设备.
请给我一些关于差异是什么或导致此错误的原因:
不要将此问题标记为重复,stackoverflow上的任何答案都不 适合我.其中很多是针对Ionic 1或者那些答案已被弃用或者它们不适用于Android设备.
我已经在stackoverflow上看到很多关于获取设备当前位置的解决方案,但是没有解决方案似乎适用于Android.
我试过的: -
使用geolocation.getCurrentPosition(),适用于IOS和浏览器,但不适用于Android.
使用this.geolocation.watchPosition() ,适用于IOS和浏览器,但不适用于Android.
使用navigator.geolocation.getCurrentPosition(),适用于IOS和浏览器,但不适用于Android.
使用此问题提供的小提琴解决方案getCurrentPosition()和watchPosition()在不安全的起源上被弃用
无论如何,所有这些都被谷歌弃用,原因是: -
getCurrentPosition()和watchPosition()在不安全的起源上被弃用,将来会删除支持.您应该考虑将应用程序切换到安全的来源,例如HTTPS.有关详细信息,请参阅goo.gl/rStTGz.
background-geolocation plugin但是,它在Android设备上花费了近50-55秒,再次它对ios工作正常 这个问题joshmorony(https://www.joshmorony.com/adding-background-geolocation-to-an-ionic-2-application/)解决方案前景不工作为Android物理设备,但做工精细的浏览器和iOS.背景跟踪工作正常,这是第一次花费将近50秒的时间来进行拉动.
请帮我解决一下这个.我想要一种在最短时间内获得当前位置的方法.对于您的信息,我使用谷歌javascript地图sdk/api.
我是离子的新手,我想在android studio模拟器上运行我的应用程序.我确实参考了链接 https://developer.android.com/studio/run/index.html.但我似乎不明白如何在模拟器上运行我的离子应用程序