使用Cordova 3.5.0,当我运行cordova prepare ios它时,使用来自的版本字符串覆盖我的内部版本号以及应用程序的版本号config.xml.
从:
<widget id="tld.domain.app" version="1.0.1"
Run Code Online (Sandbox Code Playgroud)
它将CFBundleVersion设置为与短版本相同:

所以我必须手动保持将我的内部版本号重置为我的格式YYYYMMDD.
理想情况下,我希望单独保留构建号,或者能够在config.xml文件中明确设置它.
这些都可能吗?
我正在Codeigniter上开发一个网站(带有购物车),并希望使用sess_use_database设置使用户更难以破解购物车会话.
我还想使用数据库缓存来加速常见的数据库请求(例如'获取类别',因为大多数数据库内容不会定期更改),所以我启用了这个设置:
$db['development']['cache_on'] = TRUE;
//where 'development' is my environment
Run Code Online (Sandbox Code Playgroud)
因此,我发现会话内容没有刷新,例如在此请求上:
$this->basket_contents = array_values($this->session->userdata('basket_contents'));
Run Code Online (Sandbox Code Playgroud)
另外,我试过这个:
$this->db->cache_off();
Run Code Online (Sandbox Code Playgroud)
...在会话请求之前,但它没有解决问题(我假设它不是直接的DB请求).
我的会话设置如下:
$config['sess_cookie_name'] = 'str_session';
$config['sess_expiration'] = 7200;
$config['sess_encrypt_cookie'] = FALSE;
$config['sess_use_database'] = TRUE;
$config['sess_table_name'] = 'ci_sessions';
$config['sess_match_ip'] = FALSE;
$config['sess_match_useragent'] = TRUE;
$config['sess_time_to_update'] = 300;
Run Code Online (Sandbox Code Playgroud)
我可以阻止缓存与会话相关的数据库请求吗?或者阻止某些表被缓存?
或者是否有另一个(可能是显而易见的)解决方案我没有想过?
提前致谢.
这看起来很荒谬但我在一个多小时的搜索中找不到合适的答案.
我有一个静态网站运行nginx(恰好在Varnish后面).调用索引文件index.html.我想将实际访问该URL的任何人重定向mydomain.com/index.html到mydomain.com.
这是我的网站的nginx配置:
server {
listen 8080;
server_name www.mydomain.com;
port_in_redirect off;
location / {
root /usr/share/nginx/www.mydomain.com/public;
index index.html;
}
rewrite /index.html http://www.mydomain.com/ permanent;
}
Run Code Online (Sandbox Code Playgroud)
http://www.mydomain.com/index.html按照预期的方式响应一个301位置,http://www.mydomain.com/但不幸的是http://www.mydomain.com/也回复301自身,所以我们得到一个重定向循环.
如果index.html确实在请求中,我怎么能告诉nginx只提供301?
在适用于iOS7的Cordova iPad应用程序中,我有一个固定高度的DIV(.scrollContainer),我将更高的内容添加到其中,我允许包含的内容像这样滚动:
.scrollContainer
{
width: 512px;
height: 546px;
overflow: hidden;
overflow-y: scroll !important;
-webkit-overflow-scrolling: touch;
background-color: #fff !important;
}
#content
{
width: 512px;
background-color: #fff;
}
Run Code Online (Sandbox Code Playgroud)
用户可以在触摸界面中很好地滚动嵌套内容,但是用户也可以按照iOS 7界面滚动"过去"上方或下方内容的结尾(即,当它们放开时它会快速回滚).
过度滚动时显示的背景颜色为黑色.有没有办法使用CSS将其设置为不同的颜色?
我有一个Angular验证场景,其中一个字段需要有效,除非它被禁用,在这种情况下它应该被忽略.
(我ng-messages用于演示目的,它不会影响$errors表单/字段的状态).
当字段被禁用时,我们如何清除max和required错误?
<form name="myForm">
<label><input type="checkbox" ng-model="disable"> disable field</label><br>
<input name="width" type="number" ng-disabled="disable" ng-disabled="disable" ng-model="someValue" max="100" required>
<div class="errors" ng-messages="myForm.width.$error">
<div ng-message="required">Please enter a width</div>
<div ng-message="max">Width is over the max permitted</div>
</div>
</form>
Run Code Online (Sandbox Code Playgroud)
myForm.$ valid = {{myForm.$ valid}}
这是一个关于JS Bin的工作示例:http://jsbin.com/supapotoci/1/edit?html,output
我已将现有应用更新到Cordova 6.0.0,并且在使用XCode 7.2.1定位iOS 9的iOS设备上运行它时遇到问题.
我已经安装了WKWebView插件: cordova-plugin-wkwebview-engine 1.0.2
运行使用AngularJS构建的应用程序时,它尝试做的第一件事就是打开一个json文件:
$http.get('data/config.json').success(function(data) {
// do stuff
});
Run Code Online (Sandbox Code Playgroud)
但是我们在Web视图控制台中收到此错误:
XMLHttpRequest cannot load file:///var/mobile/Containers/Bundle/Application/
E9D74C94-ADC6-410F-9F41-7CE63CB7877F/Milk.app/www/data/config.json. Cross
origin requests are only supported for HTTP.
Run Code Online (Sandbox Code Playgroud)
在config.xml文件中,我们有:
<access origin="*" subdomains="true" />
Run Code Online (Sandbox Code Playgroud)
为什么file://请求被阻止,我该如何解决?
*编辑*
根据插件页面:
"在iOS 9中,Apple修复了iOS 8中存在的问题,您无法使用file://加载语言环境文件,并且必须使用本地Web服务器.但是,您仍然无法使用文件中的XHR:/ /在服务器上未启用CORS的协议."
"你的服务器"是什么意思?什么服务器?我们正在加载本地文件,没有服务器!
我正在使用Cordova 3.3.1-0.4.2和Angular 1.2.13
收到Cordova“ deviceready”事件后,我需要手动引导Angular。
我正在Nexus 5上进行测试,cordova run android但在iPhone上却具有完全相同的行为。
为了简化问题,这是JS在全局文档范围内运行。脚本在结束</body>标记之前加载。
这有效:
angular.bootstrap(document.getElementById("app"), ["MyApp"]);
Run Code Online (Sandbox Code Playgroud)
这不起作用:
function init(){
angular.bootstrap(document.getElementById("app"), ["MyApp"]);
}
document.addEventListener('deviceready', function () {
init();
}, true);
Run Code Online (Sandbox Code Playgroud)
但是,如果我添加alert("init")到显示它正在运行的init方法中。警报(角度)和警报(document.getElementById(“ app”))也会显示它们存在。
我不明白为什么,由于调用了init(),因此从EventListener回调中调用时它不起作用,但是如果直接调用它,则它确实起作用。
似乎很奇怪/不直观。
任何人?
我在AngularJS中进行跨域CORS POST请求,如下所示:
var url = 'https://api.myapp.tld';
var userObj = { username:'foo', password: 'bar' };
$http.post(url,userObj).success(function(data){
// do success stuff
}).error(function(data){
// do FAIL stuff
});
Run Code Online (Sandbox Code Playgroud)
按照标准, Angular将根据OPTIONS请求"预检" .我的服务器返回带有必需访问控制头的204头,以允许客户端继续.到现在为止还挺好.
然而,这发生在每个 POST请求之前,除非它们非常快速地连续发生,在这种情况下我可以连续几次(所以似乎有某种超时).我的应用程序是一个移动网络应用程序,所以我担心这些额外的选项请求可能会对3G(或Edge)网络的性能产生负面影响.
我的问题是:服务器对选项请求的响应是否可以向客户端表明它可以存储更长时间的规则?
我想用$q运行事件,但我做的(对于这个问题不相关的原因)关心它们发生的顺序.我如何使用promise.then()运行事情没有按顺序用大量嵌套函数结束了?
var myGenericFunc = function(arg1,arg2){
var defer = $q.defer();
doSomeQueryNotActualSyntax(arg1,arg2, someSuccessCallback(){
defer.resolve('result');
}
return defer.promise;
}
// then somewhere else...
var result1,result2,result3,result4;
myGenericFunc('foo','bar').then(function(res){
result1 = res;
myGenericFunc('baz','qux').then(function(res){
result2 = res;
myGenericFunc('quux','corge').then(function(res){
result3 = res;
myGenericFunc('grault','garply').then(function(res){
result4 = res;
});
});
});
});
Run Code Online (Sandbox Code Playgroud)
我知道我可以命名那些嵌套函数并使用f1().then(f2).then(f3).then(f4)但是有更好的方法吗?