我已经完成了Android的Ionic 2应用程序.
为了测试我生成了我的构建:
cordova build android
Run Code Online (Sandbox Code Playgroud)
这些APK可以使用,但设备就绪事件需要很长时间才能触发.没问题.
不,我建立了制作APK:
cordova build --release android
Run Code Online (Sandbox Code Playgroud)
设备就绪事件仍然只在几秒钟后发生.我希望在生产版本中不会出现这种情况.
ionic run android --prod
Run Code Online (Sandbox Code Playgroud)
这会创建一个用于调试的构建,在此构建中,设备就绪事件会非常快速地触发.但构建称为app-debug.apk.
如何构建快速加载的生产构建?
如何只等待一定时间才能获得角度为2的HTTP请求(GET/POST)响应,否则会破坏HTTP请求?
我一看timeout和setTimeInterval功能,但那些没有突破规定的时限内HTTP请求.
基本上,我想要做的是打破HTTP请求(无论是获取还是发布),如果它在5秒内没有得到响应.
我的<img>:
<img width="90" height="90" src="{{image}}" />
Run Code Online (Sandbox Code Playgroud)
默认图像文件夹: assets/img/pic_user.png
如何定义未在变量中定义的默认图像:{{image}}?
当我们执行以下ionic state命令时,项目实际发生了什么
?
restoresaveclearreset在什么样的情况下我们需要使用它们?
我搜索了这个,但没有找到任何适当的答案细节.
我感谢您的帮助.
在我启动应用程序之前,如果有任何可用的用户数据,我将检查本地存储,如果是,我将导航到主页,否则登录页面.
在这里,我无法检索存储的数据,请输入任何输入...
目前正在使用Ionic 2 SQlite插件.
注意:在浏览器中它工作正常,但在Android设备上它无法正常工作.
loadUser() {
this.userSettings.getUser().then(user => {
this.userObj = JSON.stringify(user);
if (user) {
console.log('App : ', this.userObj);
this.nav.setRoot(HomePage,this.userObj);
} else {
console.log('App : No user data');
this.rootPage = LoginPage;
}
});
}
Run Code Online (Sandbox Code Playgroud)
this.userSettings.addUser(
userData.employeeCode,
userData.password,
userData.role
);
Run Code Online (Sandbox Code Playgroud)
getUser() {
if (this.sql) {
return this.sql.get('user').then(value => value);
} else {
return new Promise(resolve => resolve(this.storage.get('user').then(value => value)));
}
}
addUser(employeeCode, password, role) {
let item = { employeeCode: employeeCode, password: password, role: role }; …Run Code Online (Sandbox Code Playgroud) 在此代码中,我尝试在单击Ionic 2后禁用按钮
<button ion-button icon-only icon-left (click)="AddMarker()" ng-disabled="clicked" color="light"><ion-icon name="locate" ></ion-icon> </button>
Run Code Online (Sandbox Code Playgroud)
但它仍然是相同的,当点击该功能正在调用.
我加上这个
在我的api服务中的每个http调用之前,我想检查我的本地存储以获取访问令牌,然后在我拥有它之后进行调用.看起来像这样
read(endpoint,params?) {
var url: string = this.authService.apiUrl + endpoint,
headers: Headers = new Headers(),
queryString: URLSearchParams = new URLSearchParams();
this.sessionService.getToken()
.then((value) => {
queryString.set('access_token', value);
headers.append('Content-Type', 'application/json; charset=utf-8');
return this.http.get(url,{
headers: headers,
search: queryString
})
.map(res => res.json())
});
}
Run Code Online (Sandbox Code Playgroud)
在我的组件中我会有类似的东西
getData() {
this.apiService.read('some endpoint')
.subscribe(
res => console.log(res),
error => this.logError(error)
)
}
Run Code Online (Sandbox Code Playgroud)
这是有效的,直到我检查本地存储后将http调用放在.then内.所以我认为它现在嵌套不正确.
对此进行评估的正确方法是什么?在这个设置中,是否有更有效的方法可以从本地存储中获取令牌?注意:我正在使用Ionic 2,它有自己的功能来检查返回承诺的本地存储.
任何建议都会很棒.
谢谢.
我是Ionic 2的新手,我想使用我自己的图标/图像切片(就像我在原生android中的drawable文件夹中放置的那些).就像在列表视图中一样,我想添加一个图标和一些文本.我无处可找到这样的例子.任何帮助将非常感激.
我正在向服务器发送get请求,它需要JWT令牌进行身份验证.然而,Ionic坚持要做一个pref-etch请求,没有一个并且崩溃.(还有没有办法捕获非200个响应?服务器提供了很多这些响应(例如403 {message:Account Invalid}))
码
auth.ts
import { Headers, RequestOptions } from '@angular/http'
import 'rxjs/add/operator/toPromise';
...
export const getToken = function(http){
return new Promise((resolve, reject) => {
let headers = new Headers();
headers.append('Content-Type', 'application/x-www-form-urlencoded');
headers.append('Authorization', 'JWT eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjU4Yzg1MmI1YmQ1NjE1MGJkMDAxZWEzNyIsImlhdCI6MTQ4OTY3ODE0NywiZXhwIjoxNDg5NjgxNzQ3fQ.zUWvBnHXbgW20bE65tKe3icFWYW6WKIK6STAe0w7wC4');
let options = new RequestOptions({headers: headers});
http.get('//localhost:3000/auth/users', {headers: options})
.toPromise()
.then(res => resolve(res))
.catch(err => console.log(err));
});
}
Run Code Online (Sandbox Code Playgroud)
Chrome控制台:
Response for preflight has invalid HTTP status code 401
Run Code Online (Sandbox Code Playgroud)
服务器看到:(我注销了请求,没有标题或正文)
OPTIONS /auth/users 401 25.613 ms - -
Run Code Online (Sandbox Code Playgroud) 我尝试更改我的angular2和ionic2应用程序中的包标识符。在ionic1中有一个config.xml与
<widget id="com.bundle.identifier" version="2.0" ...>
Run Code Online (Sandbox Code Playgroud)
在里面。我在ionic2的哪里找到?
ionic2 ×10
angular ×5
typescript ×3
android ×1
angularjs ×1
http ×1
ionic-cli ×1
ios ×1
javascript ×1
observable ×1