Articles of cordova

如何在使用React Native时实现SSL证书固定

我需要在我的反应本机应用程序中实现SSL证书固定。 我对SSL / TLS知之甚少,更不用说固定了。 我也不是一个本地移动开发人员,虽然我了解Java并且在这个项目上学习了Objective-C足以绕过它。 我开始搜索如何执行此任务。 React Native没有实现这个吗? 不,我的初步搜索引导我查看自2016年8月2日以来未收到任何活动的提案 。 从中我了解到react-native使用的OkHttp确实支持Pinning,但是我无法将其从Javascript中删除,这不是真正的要求,而是一个加号。 在Javascript中实现它。 虽然反应似乎使用了nodejs运行时,但它更像是一个浏览器而不是节点,这意味着它不支持所有本机模块,特别是https模块,我已经在本文后面实现了证书固定。 因此无法将其带入本机反应。 我尝试使用rn-nodeify,但模块不起作用。 自从我目前正在使用RN 0.33到RN 0.35以来,这是真的。 使用phonegap插件实现 我想过使用phongape-plugin但是因为我依赖于需要反应0.32+的库我不能使用react-native-cordova-plugin 只是本地做 虽然我不是本机应用程序开发人员,但我总是可以解决它,只是时间问题。 Android有证书固定 我了解到android支持SSL Pinning但是不成功,因为看起来这种方法在Android 7之前不起作用。以及仅适用于android。 底线 我已经用尽了几个方向,并将继续寻求更多本机实现,也许可以弄清楚如何配置OkHttp和RNNetworking然后可能会回到本地反应。 但是,IOS和Android已经有任何实现或指南吗?

Phonegap上的ASP.NET窗体身份validation问题(Android)

我有一个ASP.NET MVC / Web API后端,我已经为我的Phonegap应用程序实现了表单身份validation。 通过jQuery Ajax调用发送用户凭据来执行登录,如下所示: $.ajax({ type: “POST”, url: “/api/authentication/login”, data: JSON.stringify({ Username: username, Password: password }), contentType: “application/json; charset=utf-8”, dataType: “TEXT”, statusCode: { 200: function (response, status, xhr) { // successfully authenticated Backbone.history.navigate(“/”, { trigger: true }); } } }); 后端登录方法如下所示: [ActionName(“login”)] [AllowAnonymous] public LoginResult Login(LoginCredentials credentials) { // doing all kinds […]

如何在设备而不是模拟器上运行使用Cordova生成的.apk文件?

我正在使用Sencha Touch 2.3.1开发跨平台应用程序并将其部署到我使用Cordova 3.3.0的本机平台 我按照本教程。 在本教程之后,我能够在模拟器中运行.apk文件。 现在我想在我的设备上运行该应用程序。 即使我使用USB将设备连接到笔记本电脑,我也无法在设备上运行该应用程序。 任何帮助将不胜感激。

Cordova插件开发 – 添加了aar

我是cordova插件开发的新手。 我想写一个能够打开一个新的android活动并显示一些广告的插件。 所以我在这里遵循一个简单的教程。 这非常有效并且符合预期。 下一步是将此Android Studio Gradle项目包含在我的插件中。 我的第一次尝试:将gradle项目添加到我的cordova插件的子文件夹中,并将以下行添加到plugin.xml文件中: 我也尝试过: gradova文件被cordova识别。 但有些东西不起作用。 所以我无法将android studio项目的类导入到我的插件java文件中。 然后一个更好的解决方案(我想是这样)是添加一个AAR。 但在那里,我甚至不知道如何在我的cordova插件中添加AAR。 所以,问题是:如何以正确的方式将android atudio aroject(或库)添加到我的cordova插件中?

除了“Hello”之外,还有什么好的Phonegap教程吗?

我想开始研究Phonegap以部署iOS和Android应用程序。 我想知道除了基本的“Hello”之外是否有任何好的Phonegap教程。

Phonegap的“onBodyLoad()/ onDeviceReady()”函数与Jquery的“$(document).ready()”之间的关系

我在Android中使用PhoneGap + jQuery Mobile,我对Phonegap的“onBodyLoad()/ onDeviceReady()”函数和Jquery的“$(document).ready()”感到困惑。 在PhoneGap文档中: PhoneGap由两个代码库组成:本机和JavaScript。 在加载本机代码时,会显示自定义加载图像。 但是,只有在DOM加载后才会加载JavaScript。 这意味着您的Web应用程序可能会在加载之前调用PhoneGap JavaScript函数。 一旦PhoneGap完全加载,PhoneGap deviceready事件就会触发。 设备触发后,您可以安全地拨打PhoneGapfunction。 通常,一旦HTML文档的DOM加载,您将需要使用document.addEventListener附加事件侦听器。 在jQuery doc中: 虽然JavaScript在呈现页面时提供了用于执行代码的加载事件,但在完全接收到所有资产(如图像)之前,不会触发此事件。 在大多数情况下,只要完全构造DOM层次结构,就可以运行脚本。 传递给.ready()的处理程序保证在DOM准备好后执行,因此这通常是附加所有其他事件处理程序并运行其他jQuery代码的最佳位置。 使用依赖于CSS样式属性值的脚本时,在引用脚本之前引用外部样式表或嵌入样式元素很重要。 如果代码依赖于加载的资源(例如,如果需要图像的维度),则应将代码放在load事件的处理程序中。 我的实验表明,ready()总是早于onDeviceReady(),如何解释这个? 我应该如何使用它们? 我应该在onDeviceReady()中放入ready()以使每个调用都安全吗? 先谢谢你。 问候,克里斯

Cordova PhoneGap从2.2.0升级到5.1.1

我有Cordova应用程序,版本2.2.0。 现在我要升级,我已经做了升级部分,升级后,应用程序图像不显示,它来了空白屏幕。 即使是闪屏也没来。 这是我的代码 现在我达到了某种程度。 我模拟的应用程序是关于SQLitePlugin问题。 当Open数据库说db.cordova没有定义时 如何安装数据库 – 将数据库从db文件夹复制到android安装位置。 这工作得很好。 这是我的数据库: var DB = new Object(); DB.isDBSupported = false; DB.isDBCreated = false; DB.vocabDB = null; DB.tables = [‘userResponses’, ‘wordGroups’, ‘words’, ‘wordMapping’, ‘checkExists’, ‘patch_version’] DB.createdTables = 0; DB.setupCallback = null; DB.curQP = null; DB.accountStatus = false; DB.sfx = true; DB.showWarnings = true; DB.firstLaunch = false; […]

离子 – 错误:找不到模块’android-versions’

当试着跑 ionic run android –device 我收到模块错误: Error: Cannot find module ‘android-versions’ 版本: java -version java version “1.8.0_144” Android studio Version 2.3.3 ionic -v 2.2.1 cordova -v 6.5.0

Android In App Subscription始终返回初始收据,我从未获得续订

我的Android应用有问题。 我正在尝试实施每月订阅。 我创建了IAP,该应用程序处于测试阶段,我注册为测试人员。 购买订阅时,一切都按预期工作。 我可以将其作为测试人员购买,这意味着订阅实际上并未收费,而且每天都会续订。 但这是我的问题开始的地方。 我总是得到原始收据,原始purchaseTime和purchaseToken 。 每当应用程序启动时,我都会调用queryInventoryAsync ,我希望获得最新的续订收据。 但我总是得到原始收据。 我的想法错了吗? 我不应该使用新orderID获得续订收据吗? (正如谷歌文档所说,我应该得到一个像GPA.blabla..0|1|2的orderID GPA.blabla..0|1|2 。我知道有一些缓存机制,但我已经等了三天了,我仍然得到原始订单,而我应该是最新的。 我总是在人行横道上使用cordova,我使用以下插件进行购买: https : //github.com/j3k0/cordova-plugin-purchase 。 我不知道它是否重要,它不应该因为它使用每个其他插件使用的相同的IABHelper类,但也许它们的代码有问题? 我记录了从调用mService.getPurchases(3, mContext.getPackageName(), itemType, continueToken);收到的确切响应mService.getPurchases(3, mContext.getPackageName(), itemType, continueToken); 它包含错误的数据(原始收据)。 为什么? 🙁 其他人有类似的问题吗? 是因为测试订阅了吗? 实际购买时会起作用吗? 我已经开始使用真钱进行测试,但需要一周的时间才能续订。 非常感谢。 修改 :无法从Google Play商店应用中清除缓存。 我不能要求我的用户这样做。 另外,我测试了这个,它不起作用! 编辑2生产订阅(真钱,没有测试)也不起作用! 仍然收到原始收据! 编辑3我还没有解决这个问题。 检测续订的正确方法是什么? 我应该只在后端运行一个cronjob并根据Google的Purchase Status API查询每个订阅吗? 编辑4感谢您的回答。 我已经在后端使用Purchase Status API来确定订阅是否已续订。 但它有点糟糕,如果我获得100.000订阅会导致什么? 遍历所有这些并查询Google […]

为Gradle和Cordova 5指定签名配置

与Cordova对应的新闻版5.0.0已经准备就绪。 我试图升级我的所有Android项目,就像通常那样。 要更新Cordova框架本身: npm update -g cordova 要在Android项目中更新库: cordova platform update android 使用“–release”选项构建新版本后: cordova build android –release 我只有未签名的版本。 奇怪… 那么如何重用现有的密钥库(以前由keytool生成并由Cordova 4.0.0使用)来获取签名的APK呢?