Articles of iOS

Android如何将iOS中的异步任务组合在一起

我在iOS应用程序中有一个函数,它使用dispatch_group对多个rest请求进行分组: static func fetchCommentsAndTheirReplies(articleId: String, failure: ((NSError)->Void)?, success: (comments: [[String: AnyObject]], replies: [[[String: AnyObject]]], userIds: Set)->Void) { var retComments = [[String: AnyObject]]() var retReplies = [[[String: AnyObject]]]() var retUserIds = Set() let queue = dispatch_get_global_queue(QOS_CLASS_USER_INITIATED, 0) Alamofire.request(.GET, API.baseUrl + API.article.listCreateComment, parameters: [API.article.articleId: articleId]).responseJSON { response in dispatch_async(queue) { guard let comments = response.result.value as? [[String: […]

服务器推送通知实现

组, 我计划将我自己的服务器推送通知服务器实现到Android / IOS应用程序。 因此,我的应用程序服务器(可以通过NodeJ实现)将联系Notification Server以将消息推送到设备。 所以我通过互联网浏览并find了以下现有的解决方案。 谷歌云消息传递 Apple推送通知服务 Firefox os推送通知 Microsoft推送通知服务 Q1) 在各自的网站上; 他们只通知了如何使用他们的通知服务器。 但是,我需要有关他们如何实现服务器推送的信息。 请告诉我; 他们是否遵循以下任何一项? 轮询 长期民意调查 流 服务器已发送事件 与客户端的TLS,SSL或TCP套接字连接 XMPP Q2) 以下两种方法声称虽然我的应用程序没有运行; 他们仍然可以向APP发送通知吗? 怎么可能? Apple推送通知服务 Firefox os推送通知 Q3) 在Firefox os推送通知; 他们已经告知他们正在避免保持活力以节省电池寿命。 我的问题是没有keep-alive如何确定连接是否仍然存在? Q4) 所有这些(GCM / APNS / FireFox OS)实现只是服务器端推送,并且不接受来自客户端的请求。 我对么? 所以我的服务器仍然需要处理推送消息以外的数百万设备请求,对吗? 如果我在自己的通知服务器和客户端设备之间使用websocket,我是否需要在应用程序服务器和客户端之间再维护一个websocket连接以接收来自设备的请求?

在方向更改后更改视口宽度后如何适合屏幕?

我需要页面的视口宽度为横向950px和纵向630px。 遗憾的是,这些像素宽度不灵活。 我正在使用CSS媒体查询根据方向调整DOM内容的宽度。 我正在侦听JS中的方向更改事件,以便在方向更改时调整视口大小。 初始页面加载(纵向或横向)上的一切看起来都很好。 但是,在方向更改后,Mobile Safari会保留先前的比例设置,而不是将视口拟合到屏幕。 双击或两次拉直。 但我需要这是自动的。 我已经附上了下面的源代码,并将其上传到了一个演示URL 。 以下是方向更改后拍摄的屏幕截图:从横向到纵向,从纵向到横向。 如何强制Safari自动将视口宽度设置为屏幕宽度? 或者我这样做错了吗? 更改视口中的各种比例设置没有帮助。 设置maximum-scale=1.0或initial-scale=1.0似乎覆盖我的width ,将width设置为device-width (即iPad 2上的1024或768),留下死边距空间。 设置minimum-scale=1.0似乎什么都不做。 iPad orientation ; /** * update viewport width on orientation change */ function adapt_to_orientation() { // determine new screen_width var screen_width; if (window.orientation == 0 || window.orientation == 180) { // portrait screen_width = 630; […]

编程中“厨房水槽”的确切含义是什么?

我读了很多次这个词“厨房水槽”,大多数时候我从github下载的东西,有一个名为“厨房水槽”的文件夹。 但我不知道这个的确切含义。 任何人都可以解释厨房水槽的含义是什么?

Android NSD(网络服务发现)是否与iOS中的Bonjour服务兼容?

我将为iOS和Android创建一个无服务器的本地网络应用程序。 iOS和Android设备中的应用程序应该find并相互通信。 我知道有平台内置服务(iOS版本的Bonjour和Android版本的v4.1中的NSD),此外,开源jmdns软件包也可以直接使用。 我不知道如何选择以及它们的兼容性如何。 我的问题是: Android NSD(网络服务发现)是否与iOS中的Bonjour兼容? 我应该在我的应用程序中用于服务发现。 如果我还为应用程序开发PC版本,是否需要使用第三方库?

将iPhone / iPad应用程序转换为Android

我已经开始使用iPhone SDK在iPhone和iPad上构建自己的应用程序。 客户经常询问的下一个问题是,“我们可以在Android上使用它吗?” 所以我对你的问题,’互联网’,是:我的选择是什么? 我没有时间学习另一种语言(学习iOS已经足够了!),那么有专门研究这种情况的公司,还是有任何在线服务进行转换? 对此欢迎任何帮助,只需要知道转向哪种方式……

如何在Mobile中获得One Signal唯一用户ID?

我正在开发一个餐厅应用程序。 我在我的应用程序中使用One Signal发送通知。 在这里,当我下订单时,我需要为特定用户发送一个信号的唯一ID,以获得“您的订单已成功放置…正在进行中。请等待”的通知。 为此,我需要用户的One Signal用户ID。 我怎么才能得到它? 我是One Signal的新手。 请帮帮我。

Cordova插件白名单失败要求cordova ios 4

我试着跑 ionic platform ios android 它今天给了我这个错误(以前工作正常) Installing “cordova-plugin-whitelist” for ios Failed to install ‘cordova-plugin-whitelist’:CordovaError: Plugin doesn’t support this project’s cordova-ios version. cordova-ios: 3.8.0, failed version requirement: >=4.0.0-dev at checkEngines (/usr/local/lib/node_modules/cordova/node_modules/cordova-lib/src/plugman/install.js:116:29) at /usr/local/lib/node_modules/cordova/node_modules/cordova-lib/src/plugman/install.js:289:16 at _fulfilled (/usr/local/lib/node_modules/cordova/node_modules/q/q.js:787:54) at self.promiseDispatch.done (/usr/local/lib/node_modules/cordova/node_modules/q/q.js:816:30) at Promise.promise.promiseDispatch (/usr/local/lib/node_modules/cordova/node_modules/q/q.js:749:13) at /usr/local/lib/node_modules/cordova/node_modules/q/q.js:557:44 at flush (/usr/local/lib/node_modules/cordova/node_modules/q/q.js:108:17) at process._tickCallback (node.js:355:11) Plugin doesn’t support this project’s cordova-ios […]

InAppPurchasevalidation和用于游戏逻辑的独立服务器

我正在使用Unity(适用于Android和iOS)开发应用程序。 我正在使用SOOMLA插件允许用户通过In App Purchase购买Gems(虚拟货币)。 用户和Gems以及所有其他游戏逻辑都通过Azure上的服务器。 我希望以下过程以某种方式作为单个事务发生: 用户通过IAP购买Gems 应用程序通知服务器 服务器validation购买和更新数据 但是如果互联网连接在步骤1和步骤2之间发生故障 – 用户付钱给他没有收到的gem(不好!) 所以我目前的做法是这样的: 用户启动购买 应用程序通知服务器 服务器盲目地相应地更新数据 用户通过IAP购买Gems 如果取消购买,请通知服务器将其撤消 这样,用户可以保证获得他购买的gem,但我不能保证得到报酬(不是很好……) 注意: 我不想在商店本身管理用户Gems。 我希望我自己的服务器上的一切。 所以SOOMLA的平衡对我来说毫无意义。 我不在乎。 我想也许应用程序可以将购买数据存储在持久存储中,直到它设法通知服务器有关它,然后删除它。 但我也认为这可能是一个糟糕的解决方案。 因此这个问题。 我认为最好的解决方案可以正确处理这种情况: 用户通过IAP购买Gems IAP成功 互联网崩溃了 我的服务器没有得到通知 用户从他的设备上卸载应用程序 然后,用户可以在其他设备上安装该应用: 无论是他被指控还是他通过一些魔法得到了gem 或者他被自动退款,因为没有收到gem 到目前为止,似乎无论如何这都是不可能的,这让我对IAP的技术感到失望。 希望find能certificate我错误的答案。 似乎我所需要的只是能够从我的服务器获取用户的购买历史记录,并向Google Play或Apple Store提供安全请求。 但这不是框架的一部分。 那么其他人在做什么? 什么是最好的方法?

Apache Cordova(PhoneGap)中的资源结构并从文件系统加载文件

我们有一个相当复杂的JS webapp,可以在浏览器中以不同的方式(字符串,arrayBuffer,base64,二进制)加载不同的资源(HTML模板,额外的JS / CSS文件,JSON数据,图像,video,声音)(只读不写作)。 现在,我们想对其进行更改,以使所有内容在不同平台上脱机(包括资源)作为Cordova移动应用程序。 问题#1 – 从本地文件系统加载文件 它使XHR对本地file://资源的请求在任何地方都能正常工作, 但Chrome现在是一个显示阻止因为Android内部过渡到Chrome。 好的,还剩下2个选项: 假装JSONP中的所有内容都带有脚本标签,带有iframe的HTML等等 – 这不是一个非常好的选择,因为它需要更改资源本身+它的hacky并且它会花费我们很多function(仅限字符串加载) JS / HTML,arrayBuffer,二进制等) 使用File API 不幸的是,普通的vanilla File API 总是 需要用户交互 (比如点击输入框)来获取文件引用加上IE10是禁止的。 好的,所以唯一的选择就是为PhoneGap使用自定义的File API插件 – 这给我们带来了下一个问题。 问题#2 – (跨平台?)PhoneGap中的文件路径 我喜欢PhoneGap CLI – 你在终端输入一些命令,它为你管理不同平台的文件和构建。 或者是吗? 据我所知,根据PhoneGap你应该把所有东西都放在WWW文件夹中 – 但是(一旦你构建应用程序),疯狂的事情是 – 没有简单的方法来读取这些文件(通过File API插件)从PhoneGap放置它们。 您认为fileSystem.root (LocalFileSystem)指向该文件夹,但至少在iOS上,WWW文件夹位于您的应用程序中,但fileSystem.root引用指向外部Documents文件夹(仍需在Android上测试此文件夹)但我猜它又是一些不同的东西)。 经过一些修补后,我想出了如何进入WWW文件夹,但它不灵活,hacky,感觉它应该不起作用(目前只有iOS): window.requestFileSystem(LocalFileSystem.PERSISTENT, 0, function(fileSystem){ fileSystem.root.getDirectory(“../HelloWorld.app/www”, {create: true}, function(entry) { entry.getFile(“test.json”, […]