我已经成功安装了Ionic.事实上,我已经运行了很多次并且它工作得很好(在我的浏览器上使用"离子服务"命令)..但是当我没有完成"离子的东西"几天,并尝试今天早上这样做,该命令现在无法识别.这有什么问题?
在构建和运行离子应用程序时,我遇到了一个非常奇怪的问题.我从服务器调用Login API,它在浏览器中运行得非常好
$ionic serve --lab
Run Code Online (Sandbox Code Playgroud)
但是当Android安装应用程序时,它会给出403错误,并且不会提供有关错误代码的任何其他信息,可能,我不知道如何在Android混合应用程序中获取浏览器控制台日志.
我有登录功能如下
login: function(user) {
var deferred = $q.defer();
$http.post(SERVER_URL + '/auth/login', {
username: user.username,
password: user.password
}).success(function(response, status, headers, config) {
if (response.data && response.data[0]) {
Auth.setToken(response.data[0].token);
Auth.setUserId(response.data[0].id);
deferred.resolve(response);
} else {
deferred.reject(response);
}
}).error(function(response, status, headers, config) {
deferred.reject(response);
});
return deferred.promise;
}
Run Code Online (Sandbox Code Playgroud)
但是,所有get请求都能正常工作.
当后退按钮显示时,我尝试使菜单按钮不显示.有没有办法让Ionic照顾它?还是由我决定?
例如,如果我使用ui-sref从app.users转到app.users.add或app.users.details我希望隐藏菜单按钮并显示后退按钮,但是当我走的时候它们都会显示嵌套视图.例:
<button class="button button-positive" ui-sref="app.users.details({id:user.id})"> User details </button>
Run Code Online (Sandbox Code Playgroud)
app.js
.config(function($stateProvider, $urlRouterProvider) {
$stateProvider
.state('app', {
url: '/app',
abstract: true,
templateUrl: 'templates/menu.html'
//controller: 'AppCtrl'
})
.state('app.users', {
url: '/users',
views: {
'menuContent@app' : {
controller: 'UsersCtrl',
templateUrl: 'templates/users.html'
}
}
})
.state('app.users.add', {
url: '/addUsers',
views: {
'menuContent@app' : {
controller: 'AddUserCtrl',
templateUrl: 'templates/add_user.html'
}
}
})
.state('app.users.details', {
url: '/userDetails/:id',
views: {
'menuContent@app' : {
controller: 'UserDetailsCtrl',
templateUrl: 'templates/details_user.html'
}
}
})
}
Run Code Online (Sandbox Code Playgroud)
menu.html
<ion-side-menus>
<ion-pane ion-side-menu-content>
<ion-nav-bar class="bar-stable"> …Run Code Online (Sandbox Code Playgroud) 无论如何我可以使用Ionic Framework实现VOIP客户端吗?这是一个用于VOIP的SDK,但关于连接和所有内容,是否可能或应该是原生的?
谢谢
我创建了一个使用离子的工作应用.从我的网站获取数据没有问题,一切都很好.
然后我去添加人行横道,现在我在我的Android手机上运行时出现错误:
W/XWalkCordovaResourceClient():URL blocked by whitelist: http://example.com/api/
Run Code Online (Sandbox Code Playgroud)
在顶级config.xml中,我尝试了下面的每一个(并非所有3个一次)并重新使用它(离子运行android)具有相同的结果:
<access origin="*"/>
<access origin="http://www.example.com/*"/>
<access origin="http://www.example.com"/>
Run Code Online (Sandbox Code Playgroud)
我究竟做错了什么?
运行'离子信息'我得到:
OS: Max OS Yosemite
Nodoe Version: v0.10.36
Cordova CLI: 4.3.0
Ionic CLI Version: 1.3.19
Xcode version: Xcode 6.2 Build Version 6C121e
ios-sim version: 3.1.1.
Run Code Online (Sandbox Code Playgroud)
作为一个单独但可能相关的问题,安装人行横道后运行Android模拟器上的应用程序也已停止工作 - 成功构建后它只是说"应用程序已停止"
在纯JavaScript中,您可以:
angular.module('mymodule', ['ionic'])
.config(function($someParam1, $someParam2) {
// do something with the parameters
}
Run Code Online (Sandbox Code Playgroud)
我正在尝试使用Scala.js.我尝试了以下三次尝试,所有这些都失败了:
尝试1:使用scalajs-angular
Angular.module("mymodule", Seq("ionic")).config(MyConf)
Run Code Online (Sandbox Code Playgroud)
问题:MyConf必须扩展Config,我没有找到任何可以传递参数的位置.
尝试2:使用scalajs-angulate
Angular.module("mymodule", Seq("ionic")).config((a: Any, b: Any) => {...})
Run Code Online (Sandbox Code Playgroud)
这应该工作,但我得到一个编译器错误:not found: value js
尝试3:使用动态类型的API
global.angular.module("mymodule", Seq("ionic")).config((a: Any, b: Any) => {...})
Run Code Online (Sandbox Code Playgroud)
编译,但{}内的内容不会被调用.
我现在能想到的唯一方法是编写一个基于javascript的"Bridge",它可以执行以下操作:
angular.module('mymodule', ['ionic']).config(function($a, $b) {
com.example.myapp.MymoduleConfigurator.config($a, $b);
}
Run Code Online (Sandbox Code Playgroud)
这里com.example.myapp.MymoduleConfigurator是用Scala编写.
这是唯一的方法还是有更好的方法?
上周一切顺利,当我在设备上运行应用程序或使用Genymotion进行模拟时,所有对api的调用都在工作(要么返回数据,要么失败但至少显示一些内容).
我在用
ionic run android
Run Code Online (Sandbox Code Playgroud)
我添加更新全球cordova离子:
npm install -g cordova ionic
Run Code Online (Sandbox Code Playgroud)
因为所有$ http请求都没有处理.当Api仍然正常工作并且CORS完美设置时,我无法得到任何响应.
我找到的唯一方法是使用选项--livereload或-l:
ionic run -l android
Run Code Online (Sandbox Code Playgroud)
我想避免不惜任何代价使用livereload.
我开始使用ionic 1.0.0和cordova lib 4.3.0从头开始创建一个项目.
angular.module('starter.controllers', [])
.controller('AppCtrl', function($scope, $ionicModal, $timeout, $http) {
alert('calling api');
// Create an anonymous access_token
$http
.get(domain+'/oauth/v2/token?client_id='+public_id+'&client_secret='+secret+'&grant_type=client_credentials')
.then(function(response){
alert(response.data.access_token);
});
})
Run Code Online (Sandbox Code Playgroud)
所以在使用时:
ionic serve
Run Code Online (Sandbox Code Playgroud)
它正确地警告"调用api"然后响应(该示例的OAuth访问令牌).
但在使用时:
ionic run android
Run Code Online (Sandbox Code Playgroud)
它仅警告'调用api'但似乎不处理http请求.
有人经历过类似的事吗?我对此感到非常头疼.
有一种方法可以调试吗?我用
ionic run android
Run Code Online (Sandbox Code Playgroud)
命令在Android上运行应用程序然后 - 我怎么能看到console.log()消息?
谢谢
我正在开发一个视图,每次打开视图时都需要调用webservice的multiples方法,我应该使用$scope.$on('$ionicView.enter', function(){...})还是cache:false?
每个人之间真正的区别是什么?
ionic ×10
cordova ×5
angularjs ×4
android ×2
javascript ×2
back-button ×1
cmd ×1
ios ×1
ipad ×1
keyboard ×1
menu ×1
navigation ×1
scala ×1
scala.js ×1
voip ×1