具有多个 CDVViewController 的 Phonegap/Cordova

2024-02-20

我的想法是使用 Phonegap 作为我的应用程序的业务逻辑,但使用本机转换。所以我在每个 UIViewController 中都需要 CDVWebView。这对于普通的 UIWebviews 来说工作得很好,但是如果我使用多个 CDVViewControllers 例如TabBar 中,deviceReady 事件仅针对第一个 CDVWebView 触发。

这是我在应用程序委托中执行的操作:

- (BOOL) application:(UIApplication*)application didFinishLaunchingWithOptions:(NSDictionary*)launchOptions
{    
NSURL* url = [launchOptions objectForKey:UIApplicationLaunchOptionsURLKey];
NSString* invokeString = nil;

if (url && [url isKindOfClass:[NSURL class]]) {
    invokeString = [url absoluteString];
    NSLog(@"NativeNavigationTest launchOptions = %@", url);
}    
NSLog(@"invokeString = %@", invokeString);
CGRect screenBounds = [[UIScreen mainScreen] bounds];
self.window = [[[UIWindow alloc] initWithFrame:screenBounds] autorelease];
self.window.autoresizesSubviews = YES;

CGRect viewBounds = [[UIScreen mainScreen] applicationFrame];


//4 ViewController, each one inherits from CDVViewController

self.viewController = [[[MainViewController alloc] init] autorelease];
self.viewController.useSplashScreen = YES;
self.viewController.wwwFolderName = @"www";
self.viewController.startPage = @"index.html";
self.viewController.invokeString = invokeString;
self.viewController.view.frame = viewBounds;

self.secondController = [[[SecondController alloc] init] autorelease];
self.secondController.useSplashScreen = YES;
self.secondController.wwwFolderName = @"www";
self.secondController.startPage = @"second.html";
self.secondController.invokeString = invokeString;
self.secondController.view.frame = viewBounds;


self.thirdController = [[[ThirdController alloc] init] autorelease];
self.thirdController.useSplashScreen = YES;
self.thirdController.wwwFolderName = @"www";
self.thirdController.startPage = @"third.html";
self.thirdController.invokeString = invokeString;
self.thirdController.view.frame = viewBounds;

self.fourthController = [[[FourthController alloc] init] autorelease];
self.fourthController.useSplashScreen = YES;
self.fourthController.wwwFolderName = @"www";
self.fourthController.startPage = @"fourth.html";
self.fourthController.invokeString = invokeString;
self.fourthController.view.frame = viewBounds;


//add them in a native ViewController environment like a Tabbar

self.tabBarController = [[[UITabBarController alloc] init] autorelease];
self.tabBarController.viewControllers = [NSArray arrayWithObjects:viewController, secondController, thirdController, fourthController, nil];
self.window.rootViewController = self.tabBarController;
[self.window makeKeyAndVisible];
return YES;

}

这是我为除第一个之外的每个 ViewController 收到的错误。

Error: executing module function 'setInfo' in module 'cordova/plugin/ios/device'. Have you included the iOS version of the cordova-1.9.0.js 

and

ERROR: Attempting to call cordova.exec() before 'deviceready'. Ignoring.

当然,我在 HTML 文件中引用了 cordova-1.9.0,我认为 Cordova 的设计初衷并不是使用它的多个 WebView,但是有人知道如何更改它吗?


答案是Cordova WebView http://docs.phonegap.com/en/1.9.0/guide_cordova-webview_ios.md.html。设计为嵌入本机应用程序中。

edit

对于多个 Cordova Webview,它也有同样的错误。当您仍然只能在项目中放置一个由 Phonegap 驱动的 Webview 时,我不知道这有什么意义。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

具有多个 CDVViewController 的 Phonegap/Cordova 的相关文章

  • UICollectionView 自动滚动到 IndexPath 处的单元格

    在加载集合视图之前 用户设置集合视图数组中的图像数量 所有单元格都不适合屏幕 我有 30 个单元格 但屏幕上只有 6 个 问题 如何在加载 UICollectionView 时自动滚动到具有所需图像的单元格 新的 编辑过的答案 将其添加到v
  • 如何在 NSMutableArray 中实现“按值分组”?

    我正在使用 NSMutableArray 我想像在 SQL 中那样按日期获取值group by log date logMuArray log currenttime 4 30pm log date 11 12 2011 log durat
  • 在 Objective-C 中比较 2 个字符串

    我写了以下代码 if depSelectedIndice gt 1 comSelectedIndice gt 1 NSLog depart elemet d depSelectedIndice NSLog depart elemet d c
  • ios 用户如何取消 Facebook 登录?

    当用户到达此屏幕时 无法取消 我能做些什么 为了首先获得这个视图 我正在运行 NSMutableDictionary params NSMutableDictionary dictionaryWithObjectsAndKeys vid l
  • 本地化现有的 iOS 应用程序

    我不敢相信以前没有人问过这个问题 要么是我的编码实践太无组织性 要么是我没有使用正确的关键字 How can I localize an existing iOS app that does not use NSLocalizedStrin
  • 如何打开定位服务

    当有人第一次拒绝时 如何从实际应用程序重新打开定位服务 我可以选择关闭或打开它 您只能提示他们在屏幕上打开定位服务 如下所示 UIApplication sharedApplication openURL NSURL URLWithStri
  • 如何在 iOS 9 上可靠地检测是否连接了外部键盘?

    在 iOS 9 之前 确定是否连接外部键盘的最可靠方法是监听UIKeyboardWillShowNotification并使文本字段成为第一响应者 如中所述这个问题 https stackoverflow com questions 289
  • 带操作按钮的颤动本地通知

    我在我的 flutter 项目中尝试了 flutter 本地通知插件 它在简单通知上工作正常 但我需要带有操作按钮的通知功能 请帮助我或建议我实现此功能 不幸的是 flutter local notifications 插件尚不支持操作按钮
  • 导入 RNCryptor 后架构 armv7 的未定义符号

    我导入了 RNCryptor 可以在这里找到 https github com rnapier RNCryptor https github com rnapier RNCryptor进入我的应用程序 但是 我在日志中收到了三个错误 Und
  • 是否可以使用 Firebase 安排推送通知? [复制]

    这个问题在这里已经有答案了 我已经阅读了我能找到的所有文档 但仍然不知道这是否可行 如果我是用户 我可以安排特定时间的推送通知吗 Example 1 我是用户并打开应用程序 2 我允许通知并转到 pickerView 或其他任何内容 并设置
  • 更改组织以使用 Xcode 9 在 iTunes Connect 上上传二进制文件

    我在 Xcode9 上配置了多个团队 当我尝试将二进制文件上传到 Xcode 9 上的 iTunes Connect 时 没有更改团队的选项 并且出现以下错误 ERROR ITMS 4088 来自苹果开发者论坛的解决方案 1 正常存档2 窗
  • 如何使用AudioKit保存音频文件?

    我有音频文件 我给它做了一些效果 let pitchshifter AKPitchShifter self audioPlayer pitchshifter shift 10 AudioKit output pitchshifter 如果我
  • 如何使用 Swift 使用 TouchID?

    Apple 为 iOS 8 的 TouchID 实现提供的文档采用 Objective C 语言 有 Swift 版本吗 Objective C IBAction touchIDAvailable UIButton touchIDAvail
  • 使用 PhoneGap 使 Android 应用程序易于访问(对于残障人士)

    有人有过使用 PhoneGap 使 Android 应用程序可访问的经验吗 至少我们需要使我们的应用程序符合第 508 条规定 我尝试实现一些标准的辅助功能 文本框标签 向 div 添加标题属性等 但是 当在 Android 中使用 Tal
  • Objective-C – 拥有包含 TestFlight SDK 的 TestFlight 配置

    我已按照 TestFlight 的说明复制 发布 配置 我还使用 TestFlight SDK 从我的应用程序获取实时报告 通过这样做 我必须在我的应用程序中包含一些 TestFlight 代码 当然 我不想在我的应用程序的发布版本中包含此
  • UIPanGestureRecognizer 对坐标的限制

    我在主 UIView 中添加了一个子视图 称为panel 并且我向其中添加了gestureRecognizer 因为我希望它只能在Y轴上拖动并且只能在某些限制下 即160 300 超过300它不能拖动 我以这种方式实现了手势处理 IBAct
  • insertNewObjectForEntityForName:

    我使用 Xcode xcdatamodel 文件编辑器设置了一个实体 我创建了一个名为 Person 的实体 添加了一些属性 然后生成了一个 m 文件来表示它 一切都很好 现在 当我去编写一行代码时 例如 Person person Per
  • 根据 iOS 版本使用不同的类实现?

    iOS 11 最近添加了一个我想使用的新功能 但我仍然需要支持旧版本的 iOS 有没有一种方法可以将同一个类编写两次 并让较新版本的 iOS 使用该类的一个版本 而旧版本的 iOS 使用另一个版本 注 最初我用的是if available
  • 水平 UICollectionView 单行布局

    我正在尝试使用以下命令设置简单的水平布局UICollectionView 兜圈子却没有达到预期的结果 所以任何指针或例子将不胜感激 我粘贴经常更改的代码但没有成功可能没什么意义 该图像显示两行 第一行是单个项目 尺寸正确并且在中心正确对齐
  • iOS - UITableViewCell 使文本加粗

    我有一个字符串 NSString userInfo James Johnson james 我想做的就是大胆James Johnson并保留 james正常字体 所以我尝试过的是使用NSAttributedString但为了完成这个过程 我

随机推荐

  • “Docker On Windows”是否启动Linux虚拟机?

    我知道旧的 Docker Toolbox 使用 VirtualBox 为 Docker 运行一个最小的 Linux 虚拟机boot2docker http boot2docker io 这是一个最小的轻量级Linux操作系统 现在 随着新W
  • C++函数体中的常量变量

    我相信我已经理解了 但我只是想确认 如果我有两个功能 function A const Vector3D vectorA 1 0f function B float var const Vector3D vectorB 1 0f var 在
  • GTM 脚本后 dataLayer.push 不起作用

    我想使用 Google 跟踪代码管理器实施增强型电子商务 并且希望为标签 Universal Analytics 推送一些数据 我总是在 GTM 脚本之前创建 dataLayer 但现在我需要使用以下命令发送更多数据dataLayer pu
  • 处理 PDO::prepare() 添加的引号

    根据 PHP 文档 PDO prepare 为所有参数添加引号 这样您就不必担心这样做 准备好的语句的参数不需要加引号 驱动程序会自动处理此问题 如果应用程序专门使用准备好的语句 则开发人员可以确保不会发生 SQL 注入 但是 如果查询的其
  • 如何支持“按请求”范围

    我想从中间件获取用户令牌并将其注入控制器 这可能吗 class TaskController inject private currentUser Post tasks addTask if hasPermission currentUse
  • 在 MATLAB 中将绘制的数据与颜色和尺寸源链接起来

    这个问题与发布的问题相关here https stackoverflow com questions 45527467 visualizing large 3d dataset with scatter plot 其中我概述了我在仿真期间在
  • 在 yiimongodbsuite 中更新插入嵌入文档

    我需要在 yiimongodbsuite 中执行 upsert 命令 我试过 model new Murls model gt userid userid model gt title title model gt edits 0 new
  • 为什么 Future 的 andThen 不链接结果?

    The andThen这意味着我从中学到了answer https stackoverflow com a 20292526 2210478是一个函数作曲家 比如说 f andThen g andThen h 将等于 h g f x 这意味
  • 如何通过代理设置 libGDX 项目

    我正在使用 libgdx 项目创建器 gdx setup jar 设置一个新项目 但是 我在 Windows 计算机上使用代理连接来访问互联网 并且 gdx setup jar 无法检测到设置 因此我无法下载所需的 jar 文件并生成任何项
  • Hyperledger Composer 中的链代码与 Hyperledger Fabric 中的链代码?

    在 Hyperledger Composer 中使用 javascript 编写链代码是否可以实现与在 Hyperledger Fabric 中使用 go 编写链代码相同的功能 与用 go 编写链代码相比 用 JS 编写链代码有哪些限制和好
  • 如何将会话从一台 Tomcat 服务器转移到另一台?

    我们有一个用于网店的 Tomcat 服务器 当用户登录时 我们需要将用户转移到另一个 安全 服务器 以下是详细说明 1 我们有两台 Tomcat 服务器 一台 常规 HTTP 和一台安全 HTTPS 2 用户最初访问常规服务器 3 当他们登
  • 使用 Rails、MySQL 和 Active Record 查询 where date = Date.today

    我在 Active Record 文档中看到 您可以使用大于 小于比较来查询日期 但是 如果您想选择 where date Date today 或者我必须查询 date 大于昨天且小于明天的情况该怎么办 正如您所看到的 我在以下查询中正是
  • 从 Shiny (R) 下载 png

    我对 Shiny 和 R 还很陌生 并且正在努力将我在 Shiny 中制作的情节导出到 png 文件 我查看了这两个线程 但无法弄清楚 保存在闪亮的应用程序中制作的绘图 https stackoverflow com questions 1
  • Adobe AIR - 带图像的自定义预加载器

    Folks 我设计了一个Adobe AIR应用 我想展示一些preloader在它打开之前 任何人都可以指导我的教程preloader 专门针对 AIR或者任何已经内置的 Thanks 借助 AIR 我可以想出几种方法来实现这一目标 1 使
  • go + cgo 和链接

    我想使用以下 c 作为 Go 的 cgo include
  • 如何使用 javascript 在 selenium 中设置网络节流?

    如何使用 selenium 和 javascript 在 chrome 中设置网络节流设置 我也花了一些时间才弄清楚这一点 但这似乎对我有用 driver await new Builder forBrowser engine usingS
  • React 卸载并重新挂载子组件

    我有一个 npm 导入的组件 CKEditor 它只关心其父组件在安装时的状态 也就是说 无论父组件的状态发生什么变化 如果父组件已经挂载 CKEditor 都不会反映这些变化 这对我来说是一个问题 因为当父组件更改其语言属性时 我需要 C
  • 如何在屏幕退出时隐藏有条件的自定义字段?

    我的任务是自定义标题详细信息屏幕ME33K交易 目标是添加一个包含新字段的框 仅当协议类型是我使用交易定义的类型时才应显示该框SPRO 例如 协议类型ABC 我开始使用CMOD交易中 我创建了一个虚拟框和带有一些硬编码输入值的字段 并且工作
  • Scala 相等与类型检查?

    是否有统一的方法来执行类型检查的相等性 很遗憾 val objectA String test val objectB Int 2 objectA objectB 如果 objectB 是 Int 而 objectA 是 String 则相
  • 具有多个 CDVViewController 的 Phonegap/Cordova

    我的想法是使用 Phonegap 作为我的应用程序的业务逻辑 但使用本机转换 所以我在每个 UIViewController 中都需要 CDVWebView 这对于普通的 UIWebviews 来说工作得很好 但是如果我使用多个 CDVVi