Tag: ios

React Native中的zIndex

如何处理zIndex? 我试图从scrollview中指定最大的数字,但它仍然在底部( 没有ScrollView它看起来像这样,但我需要滚动到图像。 谢谢

标题和POST正文之间的随机延迟

我们使用NSUrlConnection sendAsynchronousRequest向我们的Node JS服务器发送简单的POST请求。 通过分析tcpdump,我们注意到有时请求头和请求体被分成两个独立的TCP包。 NSMutableURLRequest *request = [[NSMutableURLRequest alloc] init]; [request setURL:[NSURL URLWithString:url]]; [request setTimeoutInterval:3]; [request setHTTPMethod:@"POST"]; [request setValue:postLength forHTTPHeaderField:@"Content-Length"]; [request setValue:@"application/json" forHTTPHeaderField:@"Content-type"]; [request setHTTPBody:postData]; [NSURLConnection sendAsynchronousRequest:request queue:[NSOperationQueue mainQueue] completionHandler: ^(NSURLResponse *response, NSData *POSTReply, NSError *error) { }]; 问题是,偶尔头文件被发送到服务器,这将打开一个连接到我们的API,然后几秒钟后身体包发送。 我们看到头和身体之间的延迟> 1秒,服务器端每百次请求就会随机发生一次。 这是我们API的最大延迟来源。 对于大多数请求,标题和正文大小相同(每个200字节)。 有没有人见过这个?

使用NodeJS服务器devise移动身份validation

我最近在为一个iOS应用程序的安全和用户身份validation问题挣扎,主要的问题是如何让用户注册任何第三方服务(或本地用户帐户),仍然保持安全和模块化的过程。 我提出的解决scheme是相当复杂的,我不是100%确定,如果所有这一切都是最佳实践,所以我想我会问,并得到什么build议和指针我可以修复,什么效果好,什么是坏等。 首先是authentication的问题。 我喜欢将authentication的想法与用户的想法分开。 对我来说,身份validation是由设备或客户端执行的,与特定用户无关,而用户帐户是由于身份validation而创build或检索的。 你可以做的是将客户端的身份validation视为一个进程,然后对用户进行身份validation(检查是否存在帐户等),以便有两层安全性。 假设客户端成功authentication,但用户密码错误,整体authentication失败,松散耦合这两个概念是有利的。 为了实现身份validation,我使用了JWT(JSON Web Tokens)通过cookie,原因很多。 1)它们在移动设备上工作得更好2)无会话,这使得服务器的实现变得更容易,并且据我所知,不受CORS攻击。 JWT似乎是使用移动设备时更好的解决scheme。 我使用了大量的npm库,最值得注意的是express-jwt和jsonwebtoken在服务器端进行身份validation。 正如我上面提到的,我不仅要执行身份validation,还希望允许用户注册任何他们想要的第三方服务,例如Facebook,Twitter,以减less注册期间的用户摩擦。 在思考这个问题之后,我花了很长时间search,提出了一个身份authentication系统的概念,authentication系统中的每个“账户types”被视为一个单独的身份提供者,并被推广为提供诸如access_token ,user_id,到期数据等。身份提供者很像在许多应用程序设置页面中看到的“已关联的帐户”。 在iOS的一面,我做了一个抽象类,为了支持每个服务,我创build了一个具体的子类, FacebookIdentityProvider , LocalIdentityProvider (email / password)等等。 在服务器端,我使用Passport模块来备份每种身份提供者。 例如,他们有一个facebook令牌模块,一个用户的电子邮件和密码等。所以我做了一个API路由/authenticate ,我的客户向序列化的身份提供商请求,并基于标识符string, local , facebook-token ,护照会根据提供的信息调用相应的子模块来validation该提供者。 总的来说,安全stream程如下所示: 客户端检查磁盘是否存在以前的JWT令牌(使用encryption箱进行安全存储)。 如果find令牌,客户端向我的verify端点发出请求。 该端点将validation令牌是否仍然有效并且没有过期。 如果令牌没有过期,客户端将被发送一个200,并与世界一切好。 如果不是,那么客户端将向我的refresh_token端点发出一个请求,其中包含已过期的令牌,它将尝试重新发送令牌。 如果失败,则客户端向我的authenticate端点发出请求,该端点只能由用户操作调用。 如果在磁盘上最初没有发现令牌,则在3的末尾发生同样的事情,客户端必须等待用户进行authentication。 所有这些工作都已经完成并且实现了,但是我仍然对一些事情有些模糊。 首先,我在express-jwt页面上读取了关于撤销令牌的内容。 什么决定了什么时候我应该撤销令牌并重新login用户? 每当它无限期地到期时,保持刷新令牌是没有意义的。 其次,当我将序列化身份提供者发送到服务器时,我传递一个额外信息的字典,这个信息将被护照用来根据进程进行身份validation。 如果成功,则为该用户创build身份提供者并存储在数据库中。 这是足够的,还是应该做更多的access_token和其他领域,我从一个成功的电话回来? 特别是对于Facebook SDK,当客户端通过应用程序进行身份validation时,我获得访问令牌,然后在客户端再次与服务器进行身份validation时,获得另一个令牌。 我有一个额外的想法是有人集成了每个请求通过头或查询parameter passing一个API密钥。 API密钥将被保密,并在客户端得到保护。 我认为这会做的是添加另一层“身份validation”,甚至还没有通过身份validation过程的客户端。 只有拥有api-key的客户才能够首先达到我的api,而且只有这些客户才能够进行身份validation。 我的背景是正式的networking安全(我从来没有任何好处),现在是全栈式移动开发,所以我对这个东西有更好的把握,但是我觉得好像在缺乏一些潜在的危险漏洞。 我不幸的是不能发布代码,因为这是我的业务,​​但如果有什么我不明确,只是评论,我会很乐意详细说明。 另外我觉得我应该提到,所有这些都是通过使用Nginxconfiguration的SSL完成的,并且我所有的iOSnetworking请求都是使用Overcoat进行的 […]

meteortesting/部署iOS应用程序连接真正的服务器(不是本地主机)

我有一个meteor应用程序,我一直在iOS手机上testing。 我原先部署了应用程序(基于本指南 ): meteor install-sdk ios meteor add-platform ios meteor run ios meteor run ios-device 但是,这只是使用本地版本,托pipe在http://localhost:3000 。 所以我一直在阅读如何部署到一个特定的服务器 ,检查了一些 不同的指导网站的话题。 从这看来,我应该简单地运行以下,其中http://example.com是服务器位置: meteor run ios-device –mobile-server http://example.com 但是,该应用程序仍在本地服务器上运行。 在config.xml中,下面两行是彼此相邻的: <access origin="http://meteor.local/*"/> <access origin="*://example.com/*"/> 所以我试图删除<access origin="http://meteor.local/*"/> ,但没有解决它。 然后,我在一个名为mobile-config.js的文件中将以下内容添加到我的meteor项目的根目录中, App.info({ name: 'Example', description: 'An iOS app built with Meteor', version: '0.0.1', author: 'Me', website: 'http://example.com/' }); App.icons({ // […]

使用Node.js将audiostream式传输到html5audio标签,并绕过iOS限制

我目前正在使用HTML5audio的项目,我们在iOS设备上的限制(主要是多个audio通道限制)方面存在问题。 我在想,使用node.js来控制声音服务器端是可能的。 客户端将连接到一个单一的audiourl,节点服务器将通过这个单一频道传送现场声音,并在服务器上进行所有的混音和转换。 技术上可行吗? 你可以parsingnode.js上的audio,并做一些现场混音? 你认为服务器会爆炸超过5个同时客户? 谢谢

Firebase推送通知 – 节点工作人员

无论何时将某个子项添加到Firebasepath,我都需要向用户发送iOS推送通知。 我在想,做这件事的最好方法就是在Heroku上做一个Node.js工作人员,这个工作人员可以听取更改并使用Urban Airship发送通知。 我不确定最好的方法是从Heroku的Node.js工作人员那里听Firebase的变化。 我不熟悉heroku工人和Node.js。 任何人都可以给我一些指针? 例子?

React Native Socket.io如何从设备连接到本地节点服务器

我在iOS模拟器中将io.connect()方法指向我的localhost时正在build立连接,所以一切正常。 但是,当connect()方法指向我的机器的LAN IP地址时,我无法在模拟器或设备上成功连接到服务器。 我现在非常难以忍受这一个,任何帮助,将不胜感激谢谢。

如何在android或ios移动设备上运行Nodejs运行时

我正在尝试使用Ionic Framework为iOS / android开发一个chrome-cast应用程序,并且在我的应用程序中需要less量的NodeJS包。 这是从我的桌面工作,但我不知道它将如何运行的移动设备没有节点运行时间可用。 所以第一个问题是如何在iOS / Android设备上安装或提供NodeJS运行时,以及后来是否可以使用iOS / Android应用程序包进行打包。

APN BadDeviceToken iff运行dev版本

问题 我在工作时没有收到推送通知给我的应用程序, APN服务器返回“ BadDeviceToken ” 。 情况 我必须在这里错过一些简单的事情,情况是这样的: 当我发送推送通知到我的应用程序从App Store下载它的作品 当我从同一服务器发送推送通知到我的应用程序的相同版本(*),但build立了Xcode,APN服务器返回一个status: '400'失败, failed[0].response.reason: 'BadDeviceToken' (*)我说相同的版本,代码是相同的,插件应该是相同的,但我已经把cordovaiOS版本从4.x改为3.x。 技术 我正在使用推送通知的新方法,在服务器上的服务器上我只有一个.p8 APNs身份validation密钥。 服务器是使用node-apn插件的节点代码。 客户端应用程序是cordova,使用Telerik Push Plugin 。 我试过了 我已经尝试创build一个新的APNsauthentication密钥,并上传到服务器; 仍然适用于应用程序的App Store版本,而APN在发送到我本地生成的应用程序版本时仍然返回“BadDeviceToken”。 我已经尝试设置production: false在发送推送到我的本地构build的应用程序之前,在服务器configurationnode-apn production: false ; 我仍然收到“BadDeviceToken”错误。 根据这个问题对令牌做一个额外的hex编码; 结果是它仍然说“BadDeviceToken”,虽然在这种情况下,它实际上是真的。 将cordova-ios版本反弹到4.3.1; 仍然得到“BadDeviceToken”。 双重检查build立时的“推送通知”function 按照这里所build议的执行发布版本而不是debugging版本,并在此处进行描述 问题(S) 为什么APN服务器在显示不正确的时候说BadDeviceToken ? 而且,我该如何解决?

从iOS应用程序通过node.js将图像上传到服务器

我正在开发一个iOS应用程序,我正在使用node.js服务器端脚本。 我面临从iOS应用程序上传图像到服务器的问题。 如果我从网页forms上传图像,它工作正常。 但是,如果从应用程序上传它不起作用。 //test file h3 Pic Upload form(action='/pic_upload', method='post',enctype='multipart/form-data') | user_pic: input(type='file', name='user_pic') input(type='submit') //app.js var userlogin =require('./routes/userlogin'); app.post('/pic_upload', userlogin.picUpload); //userlogin.js //picUpload function exports.picUpload = function(req, res) { console.log(req.files); // showing undefined, when called from IOS app // pic upload script… }); 我曾尝试从应用程序端发送图像作为数据或文件参数,但它没有工作。 如何从应用程序端发送文件参数,以便我可以轻松地将图像上传到服务器? 请提出解决问题的方法。