Articles of iOS

用于C ++和平台本机代码(iOS,Android)之间通信的跨平台库

我知道这已经被问过很多次了,但是在现有的SO答案中我找不到任何我想要的东西。 基本上,我们即将创建具有以下function的复杂移动应用程序: 使用OpenGL进行3D图形渲染 集成了摄像头,加速度计,陀螺仪等硬件function 使用网络(HTTP) 本地数据库(SQLite) 硬盘使用情况 zip文件和加密(OpenSSL) 与第三方硬件(例如连接到平板电脑的第三方传感器)集成,并带有自己的SDK 我们希望此应用在iOS,Android和Windows环境中运行。 考虑了许多解决方案,包括Qt,Xamarin和其他解决方案,但在如此复杂的用例中使用这些框架似乎风险很大。 我们现在要考虑的是本机构建每个应用程序,但在共享C ++库中维护尽可能多的共享代码。 例如,我们想为各种function制作C ++组件,例如: 与服务器的HTTP通信 文件加密 商业逻辑 … 但是,存在一定的问题。 目前尚不清楚,我们如何在库中连接原生UI层和C ++代码。 从Java或Obj-C代码调用库函数很容易,但是其中许多函数会调用一些异步任务(调用HTTP url,将文件转储到磁盘)。 目前尚不清楚如何将此类异步任务的结果传播回UI代码。 我们理想的是一些MvvM架构,其中Views完全是特定于平台的,但是Models和部分ViewModel是用C ++编写的。 此外,这种架构通常使用“服务” – 那些也可以具有特定于平台的接口,但是C ++核心。 有没有已知的方法来提供这种集成? 也许有一些库在UI代码和库之间提供“中间层”? 或许我们的方法根本不可行,在这种情况下你会建议什么?

始终在新的phonegap项目中显示一些警告

我曾在phonegap中使用过几个应用程序。 每次我使用phonegap docs的以下链接中的给定步骤构建新项目: http://docs.phonegap.com/en/2.0.0/guide_getting-started_ios_index.md.html 但我在每种情况下都看到有15个警告 : /Users/Webgrity/Desktop/BramAutoGroup/BramAutoGroup/Classes/AppDelegate.m:81:25: ‘useSplashScreen’ is deprecated: Deprecated in Cordova 2.5. Add/Remove the SplashScreen plugin instead of setting this property. /Users/Webgrity/Desktop/BramAutoGroup/CordovaLib/Classes/CDVFile.m:804:54: Implicit conversion loses integer precision: ‘long long’ to ‘unsigned long’ /Users/Webgrity/Desktop/BramAutoGroup/CordovaLib/Classes/CDVFile.m:805:108: Implicit conversion loses integer precision: ‘long long’ to ‘NSUInteger’ (aka ‘unsigned int’) /Users/Webgrity/Desktop/BramAutoGroup/CordovaLib/Classes/CDVFile.m:1075:54: Implicit conversion loses integer precision: ‘long long’ […]

SqliteException忙着iOS / Android Xamarin MVVMCross

在我们的Android和iOS MVVMCross应用程序中,我们偶尔会遇到SQLiteException:繁忙的exception。 鉴于下面的代码,我们有几个存储库,每个存储库构造一个下面的实例和一个与Sqlite数据库的关联连接。 想象一下,我们有一个Stocks Repository和一个Valuations Repository,将创建两个SqliteDataService实例:SqliteDataServicetypes为Stocks,SqliteDataServicetypes为Valuations,每个都与Sqlite数据库有连接。 存储库上的操作可以在后台线程上运行,这意味着我们可能会尝试在与估值值同时将Stocks插入数据库。 现在,每个存储库创建自己的SqliteDataService,connectionObject锁将仅保护相同的存储库types同时访问数据库,而不是保护Stocks和Valuations同时访问数据库。 我的问题是: 每个存储库创建连接是否有效,如果是,我们如何防范SqliteException:busy? 有更好的模式吗? 即我们应该创建一个跨线程共享相同连接的非genericsSqliteDataService类吗? 我们尝试了这个,但在Android上我们遇到了致命的例外。 Xamarin MVVMCross有没有一个坚实的Sqlite DAL模式? public class SqliteDataService : IDataService where T : new() { private static object lockObject = new object(); private static object connectionObject = new object(); private static ISQLiteConnection _connection; private static SqliteDataService _instance; public SqliteDataService(ISQLiteConnectionFactory connectionFactory, string dbPath) { if […]

跨平台移动订阅(Android + iOS)

是否可以使用本机API进行跨平台订阅并在自己的后端管理这些订阅? 示例:在iOS设备上订阅iOS更改设备并降级(取消)订阅(计划)。 例如,Spotify通过PayPal和其他付款方式进行跨平台订阅,但我不确定我们的应用是否会被拒绝,考虑到这两个平台的应用内指南。

Android M – 用于存储用户名/密码的钥匙串

以下是我试图在Android上实现的iOS工作流程: 用户首次启动应用程序并使用凭据成功登录(发送到API进行validation)。 要求注册Touch ID的提示节目 用户选择YES =>用户名/密码存储在Keychain中 用户注销,关闭并重新启动应用程序。 提示显示要求使用指纹进行身份validation 用户使用指纹进行身份validation=>从Keychain检索用户名/密码,然后发送到API 是否有Android等效的iOS Keychain API? 据我所知,Keystore似乎只能存储密钥和证书。

Facebook应用程序是否有通用URI方案,适用于所有移动设备?

我正在尝试向用户发送营销电子邮件。 电子邮件设计具有响应性,将在手机和台式机上打开。 我想在电子邮件底部放置一个链接到我公司的Facebook页面,我希望这个链接在手机和桌面上的行为不同。 在移动设备上,链接应该将用户带到Facebook应用程序中的Facebook页面,而在桌面上,它应该将用户带到浏览器本身的Facebook页面。 我们的Facebook页面是https://www.facebook.com/gallerifive 到目前为止我知道这个: 在iPhone上,URI fb:// profile / 1489743204605638将用户带到FB应用程序中的galleri5页面(根据需要)。 在Android手机上它会抛出一个错误。 在iPhone上,URI fb:// page / 1489743204605638将用户带到Facebook应用程序,在加载任何内容之前,FB应用程序崩溃了! 在Android手机上,它会在FB应用程序中打开galleri5页面(根据需要) 我知道我可以根据他们的平台不同地重定向Android和iPhone用户 – 但听起来有点奇怪的是,没有适用于所有移动设备的Facebook的通用URI方案。 有谁知道更多关于这个?

Android Chrome浏览器覆盖了覆盖输入字段的网页上的软键盘

我在HTML5应用程序上遇到此问题。 它适用于iOS上的Safari和Chrome,但问题出现在Android设备上。 每当显示带有输入字段的表单并尝试输入任何详细信息时,软键盘将覆盖字段,而不是将其向上移动。 在像手机这样的小型设备上,无法看到您输入的内容。 我需要补充一点,在全屏模式下运行添加到主屏幕的应用时,情况会更糟。 键盘只是覆盖了一切。 我已经在网上尝试过每一个“解决方案”,但无济于事。 请注意,这不适用于原生应用,而是适用于在线网站。 提前致谢。

循环/无限ScrollView React-Native

我创建了这个结构,当我滚动到底部或向上滚动时,我不知道如何让我的第一个ScrollView循环或变为无限。 我需要这个循环/无限滚动才能在iOS和Android上运行。 render() { return ( Home Carde Card 1 Card 2 Card 3 Card 4 ) } }

反应本机内存泄漏animation问题

我正在尝试在React Native中建立一个移动池游戏,0.17,用于体验并遇到有关垃圾收集的问题。 现在我有十个同时渲染的圆圈在屏幕上反弹。 但是,应用程序的内存消耗会随着时间的推移而增加,我不知道如何解决此问题。 看起来这是早期版本中的React Native问题,我确实注意到内存会随着时间的推移而下降,如图中所示,但在更大的应用程序中,我担心这可能是个问题。 有没有其他人有类似的问题或有解决方案? 相关代码在这里,非常感谢任何帮助。 谢谢! var Test = React.createClass({ getInitialState: function() { var circs = []; for (var i = 0; i < startCount; i++) { circs.push({ id: i, x: 0, y: 0, vx: 2 + Math.random() * 2, vy: 2 + Math.random() * 2, dx: 0, dy: 0, cOb: new […]

手机上的HTML5video – Chrome 55不会自动播放和静音?

我的Android手机上的Chrome浏览器是版本55.根据此文档 ,“Android版Chrome 53支持video静音自动播放”。 这是我的代码: 有任何想法吗? 我甚至在我的Android上测试了他们的示例页面 ,而根本没有工作!