具有多个 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 的相关文章

  • 对于 android 系统,使用 Sencha Touch 或 Phonegap 哪一个更好? [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • Cocos2D中如何让物体对触摸做出反应?

    好吧 我开始更多地了解 Coco2D 但我有点沮丧 我发现的很多教程都是针对过时版本的代码 因此当我浏览并了解它们如何执行某些操作时 我无法将其翻译成我自己的程序 因为很多都发生了变化 话虽如此 我正在使用最新版本的 Coco2d 版本 0
  • 当窗口失去焦点时 setTimeout 会发生什么?

    我遇到一种情况 需要在身份验证令牌过期之前重新验证 cordova 应用程序上的令牌 为此 我想我应该在身份验证令牌到期之前设置一个超时 以重新进行身份验证 function authenticate var token get token
  • iPhone 应用程序需要 AAC 许可证吗?

    AAC 是一种音频编解码器 AAC 旨在成为 MP3 格式的后继者 在相似的比特率下 AAC 通常可以实现比 MP3 更好的音质 维基百科上的 AAC http en wikipedia org wiki Advanced Audio Co
  • 构建流星应用程序后流星无法运行

    好的 我使用命令构建了一个流星应用程序 meteor build bundle debug server https my app url hosted on meteor Meteor 确实使用 cordova android pack
  • 如何找到安全区域的高度和宽度?

    我正在尝试以编程方式为某些标签 按钮和文本字段设置相对于安全区域的高度和宽度的约束 例如 我希望将标签到安全区域顶部的距离设置为安全区域高度的 10 如何检索安全区域的高度和宽度 这是一个合理的方法吗 我的想法是 无论 iOS 设备如何 我
  • 通过 IOS Google Drive SDK 列出 Google Drive 的所有文件夹

    实际上我将 google drive sdk 与我的 ios 应用程序集成了 我可以通过适用于 iOS 的 google drive sdk 在 Google Drive 上上传指定文件 此外 我想提供一个功能 用于从可用文件夹中选择一个文
  • 电影播放完毕后关闭 AVPlayer

    我正在制作一个简单的 iPad 应用程序 按下按钮即可播放电影 电影播放 电影结束后我想关闭 AVPlayerView 以便它返回主屏幕 目前 当视频结束时 它停留在最后一帧 我现在的 ViewController Swift import
  • 从本机代码访问 AsyncStorage

    我需要使用 JS 代码中的 AsyncStorage 将数据保存在本地存储中 我想知道是否有一种方法可以从本机代码 Objective C 或 Java 访问 AsyncStorage 存储的数据 Thanks 如果你导入RCTAsyncL
  • 使用 Unity3D 按钮执行 xcode 函数?

    是否可以在 unity 中制作一个按钮来执行 Xcode 中的功能 我正在尝试执行来自 unity3d 项目的推送消息 请帮忙 因为这让我发疯 提前致谢 是的 您可以调用具有 C 接口的本机 Objective C 代码 您甚至可以在 Un
  • AVAssetExportSession 前置摄像头方向错误

    我仅在前置摄像头中使用 AVAssetExportSession 导出的视频方向错误 我按照这个教程https stackoverflow com a 35368649 3764365 https stackoverflow com a 3
  • Xcode如何将目标打包为.framework(而不是.a库)

    我有一个通用框架项目 其中包含一个库作为其主要目标 在产品下是带有 lib 前缀和 a 扩展名的库 请参阅下面的屏幕截图 我正在使用一个第三方项目 其中包含一个框架作为其目标 并且在 产品 下是具有 framework 扩展名的框架 请参阅
  • 快速不平衡调用开始/结束外观转换

    这已经困扰我一段时间了 我有一个UISplitViewController里面一个UITabBarController 主视图是一个TableView 当我单击一个单元格时 我会弹出一个非常基本的视图控制器 其中只有一个UIButton居中
  • 从 HealthKit 获取昨天的步数

    我正在构建一个供个人使用的应用程序 目前我正致力于如何从 healthkit 中准确获取昨天的步数 然后从那里将其放入变量中 我知道应该很容易 我有一个 HealthKitManager 类 它从视图内部调用该函数 然后将其附加到同一视图中
  • ipa 应用程序无法添加到我们的 itunes 库,它不是有效的应用程序

    我使用 xcode 6 和 swift 语言制作了一个未签名的 IPA 应用程序 我已压缩 app 文件并将其扩展名更改为 ipa 当我想在越狱的iPhone上安装这个 ipa文件时 出现以下错误 无法将应用程序 youtapp ipa 添
  • 将 NSString 拆分为子字符串的最有效的内存方法

    我有以下代码 int start html rangeOfString class WordSection1 gt location 24 int end html rangeOfString div class location self
  • 如何以编程方式伪造 UIButton 的触摸事件?

    我正在编写一些单元测试 并且由于这个特定应用程序的性质 重要的是我要达到尽可能高的水平UI链尽可能 因此 我想做的是以编程方式触发按钮按下 就好像用户按下了按钮一样GUI 是的 是的 我could只需致电IBAction选择器 但同样 这个
  • 如何将 PhoneGap 调试控制台与 CLI 集成?

    PhoneGap 网站上的此页面http docs phonegap com en 3 3 0 guide cli index md html The 20Command Line 20Interface http docs phonega
  • cellForRowAtIndexPath:未调用

    我的应用程序有两种状态 已登录和未登录 并且我有以下架构 大大简化 ViewController A 包含一个搜索框和一个表视图 ViewController B 用于登录应用程序 流程如下 用户未登录 A 被压入堆栈 在viewWillA
  • 用于在某个日期或活动打开 iCal 应用程序的 URL 方案?

    Apple URL 方案参考 https developer apple com library ios featuredarticles iPhoneURLScheme Reference Introduction Introductio

随机推荐

  • “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