Cordova 2.4.0及更高版本支持AMD加载到javascript中.我特别希望将Cordova 2.5.0与最新版本的RequireJS,backbone,jquery,jquery mobile结合使用.
我还没有看到任何有关如何使用requirejs正确使用新版Cordova的教程或帖子.当Cordova不支持AMD(2.3.0及之前版本)时,我确实看到大量有关如何整合Cordova和requirejs的帖子.
如果有人可以发布或指出一个简单的例子,我将不胜感激.
编辑:具体来说,我的目标是iOS开发.
编辑:我想更具体,并包括我遇到的确切问题.
main.js
require.config({
paths: {
cordova: 'libs/cordova/cordova.ios',//cordova-2.5.0',//2.5.0*/
jquery: 'libs/jquery/jquery.min',//1.9.1
text: 'libs/require/text',
domReady: 'libs/require/domReady',
underscore: 'libs/underscore/underscore-min',
backbone: 'libs/backbone/backbone-min',
'jquery.mobile-config': 'libs/jquery-mobile/jqm-config',
'jquery.mobile': 'libs/jquery-mobile/jquery.mobile.min'
},
shim: {
backbone: {
deps: ['jquery', 'underscore'],
exports: 'Backbone'
},
underscore: {
exports: '_'
},
'jquery.mobile': {
deps: ['jquery', 'jquery.mobile-config']
}
}
});
require(['app'], function(App){
App.initialize();
});
Run Code Online (Sandbox Code Playgroud)
app.js
define([
'cordova',
'jquery',
'underscore',
'backbone',
'router'
], function(cordova, $, _, Backbone, Router){
var initialize = function(){
Router.initialize();
}
return {
initialize: initialize
}; …Run Code Online (Sandbox Code Playgroud) 编辑2/6/14:
我创建了一个本地Apache Tomcat服务器来测试带有证书身份验证的SSL.我成功了!使用下面的两种方法,一切都按预期工作.(MKNetworkKit和自定义代码).虽然这确实告诉我我的代码正在运行,但我的原始问题仍未解决.我更新了问题的标题,以更具体地反映问题.有谁知道SAP Portal是否需要特殊设置来接受来自iOS应用程序的证书?请记住,在将CA和.p12导入共享密钥链后,我能够使用Safari移动设备成功进行身份验证,我只是在代码中失败(我现在知道代码可以工作,而不是使用门户网站).
我正在创建一个非常简单的iOS7 Cordova 3.2应用程序,其中包含一个自定义插件,通过仅提供.p12证书进行身份验证(无需基本身份验证或其他用户凭据)从SSL Web服务获取数据.我在物理iPad(没有模拟器)上执行所有测试.Web服务使用自签名证书存在于开发SAP NetWeaver门户框中.目前,我将服务器的CA导入iOS钥匙串以避免证书信任错误.出于测试目的,我的.p12证书在应用程序内部捆绑在mainBundle的根目录中.
尝试连接到Web服务时,我在控制台中收到以下错误:
CFNetwork SSLHandshake failed (-9825)
NSURLConnection/CFURLConnection HTTP load failed (kCFStreamErrorDomainSSL, -9825)
Error Domain=NSURLErrorDomain Code=-1205 "The server “myhostremoved.com” did not accept the certificate." UserInfo=0x14e99000 {NSErrorFailingURLStringKey=https://myhostremoved.com/sslwebservice/, NSErrorFailingURLKey=https://myhostremoved.com/sslwebservice/, NSLocalizedDescription=The server “myhostremoved.com” did not accept the certificate., NSUnderlyingError=0x14d9b1d0 "The server “myhostremoved.com” did not accept the certificate.", NSURLErrorFailingURLPeerTrustErrorKey=<SecTrustRef: 0x14d94720>}
Run Code Online (Sandbox Code Playgroud)
根据Apple的文档站点,-9825错误引用了错误的证书.
有很多关于SO的问题与我想要做的事情有关,但没有一个与我所看到的错误有关.我以两种不同的方式处理代码的开发.
首先,我尝试使用已经在SO上的代码,使其适应我的用例.见下面的代码:
- (void)startConnection:(CDVInvokedUrlCommand*)command {
NSDictionary *options = [command.arguments objectAtIndex:0];
NSURL *serverURL = [NSURL URLWithString:[NSString stringWithFormat:@"%@", [options objectForKey:@"host"]]];//hostname provided by Cordova plugin, …Run Code Online (Sandbox Code Playgroud)