• 官方说有低成本,低开发周期,轻量化等优点,这些咱暂时也没法证明,略过不表。但是有一条跨平台,却是很明显的优势。因为它采用HTML5+JavaScript的模式来开发应用。PhoneGap用JavaScript统一封装了几大平台的本地...

    PhoneGap是一套能让你使用HTML5轻松调用本地API接口和发布应用到商店的应用开发平台。官方说有低成本,低开发周期,轻量化等优点,这些咱暂时也没法证明,略过不表。但是有一条跨平台,却是很明显的优势。因为它采用HTML5+JavaScript的模式来开发应用。PhoneGap用JavaScript统一封装了几大平台的本地api(Andriod,IOS,WP8/7,WINRT)等等。。这样的话从一个平台移植到另外一个平台只需要把HTML代码跟JS原封不动的拿过去,打包一下就可以了。PhoneGap后来被Adobe收购,然后又贡献给了开源社区,现在由Apache管理,改名cordova。
    本文主要介绍 cordova 在mac 系统下 创建iOS 项目的过程,及创建过程中出现的问题及解决。
    cordova 官方文档  http://cordova.apache.org/docs/en/latest/guide/cli/index.html
    个人总结的步骤为
     1安装Node.js
     2.  安装XCode

    - 打开“终端”,输入: xcode-select --install

    - 输入:npm install -g ios-sim,若报错,则需要用sudo npm install -g ios-sim

    - 输入:(sudo) npm install -g ios-deploy

    - 输入:sudo npm install -g cordova   (卸载用npm uninstall cordova -g)

    - 输入:cordova create myapp(WebApp)

    - 输入:cd myapp

    - 输入:cordova platform add ios (若报错,则需要注册, http://register....)

    - 输入:cordova build ios

    - 双击   .xcodeproj  打开文件

    - 再去developerz中添加App ID,添加Certificate,下载,然后在Provisioning Profiles--Distribution中设置信息文件到本地,要有证书,也要有说明文件

    - 内置浏览器插件:cordova plugin add cordova-plugin-inappbrowser


    在使使用 cordova 创建iOS 工程时 会出现  bash: cordova: command not found; 

    环境变量没有设置出现的问题 
    在终端输入 export PATH=$PATH:/usr/local/lib/node_modules/cordova/bin


    在终端输入
    echo "$PATH" 查看是否已经添加cordova 的环境变量
    这是变可以创建iOS项目了
    参考 文档链接地址 
    http://stackoverflow.com/questions/17975330/bash-cordova-command-not-found-or-bash-phonegap-command-not-found
    
    http://www.cnblogs.com/shineqiujuan/p/4693404.html
    
    
    
    
     


    展开全文
  • 问题表述:如题,在编译时出现错误 #include file not found. 解决方案:这是该头文件的地址找不到。于是在Header search path处将头文件地址加入。我是用的是绝对地址:/路径/工程名CordovaLib/build/Debug-iphone...

    问题表述:如题,在编译时出现错误 #include <Cordova/CDJASON.h> file not found.

    解决方案:这是该头文件的地址找不到。于是在Header search path处将头文件地址加入。我是用的是绝对地址:/路径/工程名CordovaLib/build/Debug-iphonesimulator/include。

    这时候出现了另一个问题libCordova.a文件找不到。于是在setting build->other linker flags中加入"/工程路径/工程名/CordovaLib/build/Debug-iphonesimulator/libCordova.a"。clean 一下工程(cmd+shift+k)。

    于是bingo。


    后记:

    刚又看了一下cordova的start guide ,发现原文中已有解决方案:

    If you have compilation problems related to missing headers, the build products should build into the same build directory. You may need to set the preference "Xcode Preferences -> Locations -> Derived Data -> Advanced…" to "Unique". This is the default setting for Xcode on a fresh new install, if you upgraded from older versions of Xcode, you might have a legacy preference in there that you need to update.

    即把derived data的路径改为unique,即依赖工程与主工程的build文件夹为同一个文件夹。我原来选择的是 legacy。看来还得好好看文档啊。。。
    展开全文
  • 设置Xcode 为PhoneGap应用程序设置Xcode的第一个步骤是从Apple网站上下载并安装Xcode IDE。 你可以从 Apple开发人员网站(Apple developer site)上 下载Xcode。 在下载Xcode之前,你必须以开发人员的身份在...

    设置Xcode

    为PhoneGap应用程序设置Xcode的第一个步骤是从Apple网站上下载并安装Xcode IDE。 你可以从 Apple开发人员网站(Apple developer site)上 下载Xcode。 在下载Xcode之前,你必须以开发人员的身份在Apple上进行注册。 在你注册之后,你就能够免费访问Xcode、iOS设备仿真器和Apple开发人员文档。 如果你希望将你的应用程序部署至实际设备,或通过iTune商店发布你的应用程序,那么你必须以iOS开发人员的身份在Apple上进行注册,并交纳与之 相关的年费。

    在Xcode下载完成之后,你只需按照安装向导完成安装过程即可。

    下载和安装PhoneGap

    一旦你成功地完成Xcode的安装,接下来的一步则是下载和安装PhoneGap。

    1. 用你的浏览器访问 honeGap下载页面(PhoneGap download page)http://phonegap.com/download),并单击橙色Download链接进行下载。

    注: 下面所示的步骤适用于PhoneGap 1.4.1,然而,该过程应该适用于或类似于所有的PhoneGap版本。

    1. 解压缩ZIP文件内容。
    2. 浏览至已解压缩文件的 libs/ios/ 文件夹,并双击PhoneGap-1.4.1.pkg包安装程序。

    该操作会启动PhoneGap安装向导,它将在你的系统中对PhoneGap的安装过程进行引导(参见图1)。

    图1. PhoneGap安装程序

    图1. PhoneGap安装程序

    1. 按照安装程序提供的安装说明进行安装,直到你看见“Thanks for installing PhoneGap 1.4.1!”。

    当你看见这个提示时,PhoneGap安装已经完成。 现在,你可以在Xcode中创建你的第一个PhoneGap项目。

    在Xcode中创建项目

    PhoneGap安装程序为Xcode添加一个PhoneGap项目模板,该模板能够简化PhoneGap应用程序的创建。

    1. 首先,单击Xcode欢迎屏幕上的Create A New Xcode Project(参见图2)。 此外,你也可以选中File > New > New Project来创建新的PhoneGap项目。

    图2. Xcode欢迎屏幕

    图2. Xcode欢迎屏幕

    创建新的Xcode项目的第一个步骤是选中一个项目模板。

    1. 在iOS > Application下找到并选中PhoneGap-based Application模板,然后单击Next(参见图3)。

    图3. 选中一个项目模板

    图3. 选中一个项目模板

    在选中项目模板之后,你需要对你的项目进行命名。 你可以为它起一个能够表明你将要建立什么项目的名称。

    1. 在本例中,只需输入Hello,因为你将建立一个简单的Hello World应用程序(参见图4)。

    图4. 设置项目名称以及其它选项

    图4. 设置项目名称以及其它选项

    此外,在New Project Options屏幕上,你还需要输入公司标识(company identifier)。 公司标识(company identifier)是与产品名称相关的前缀,用来为你的应用程序创建独特的包标识(bundle identifier)。 在Apple Provisioning Portal中,包标识(bundle identifier)应该与你为独特应用程序所创建的App ID相匹配(参见图5)。

    图5. 在Apple Provisioning Portal中指定包标识(bundle identifier)

    图5. 在Apple Provisioning Portal中指定包标识(bundle identifier)

    如果你不确定在此处输入什么,或如果你不希望立即在设备上进行部署或发布该应用程序,那么你可以输入任何你希望的内容,或保留空白。 你可以稍后通过编辑在Xcode项目概要屏幕中的Identifier字段或手动编辑你的项目的Info.plist文件来改变包标识(bundle identifier)。

    注:在项目选项屏幕上,你也能找到打开Automated Reference Counting (ARC)的选项。 如果你不希望在你的PhoneGap应用程序中编写任何本地代码,那么你可以忽略该选项。 如果你需要编写PhoneGap本地插件或本地代码,那么你只需考虑ARC即可。 PhoneGap本地插件允许你编写属于自己的本地代码和JavaScript API,以便对PhoneGap容器的能力进行扩展。

    无论ARC是否启用,PhoneGap项目均能运行。 如果启用ARC,那么你不必在任何本地代码中使用保留和释放指令来管理内存分配。 Xcode LLVM编译器会自动地为你生成适当的保留和释放指令。 如果未启用ARC,那么你必须手动地管理内存。 记住,ARC仅适用于本地代码,而不适用于HTML或JavaScript代码。

    1. 单击Next。
    2. 在你的文件系统中选中一个文件夹,而你的PhoneGap项目将驻留在该文件系统中(参见图6)。

    图6. 选中项目位置

    图6. 选中项目位置

    1. 单击Create。

    你的PhoneGap项目将在Xcode中进行创建。 但是,在你的项目完成并运行前,还有一些步骤需要你完成。

    用来为你的PhoneGap项目创建界面的所有HTML和JavaScript均需包含在一个www文件夹中。 起初,该www文件夹在你的PhoneGap项目中并不存在。 为了创建该文件夹,首先你必须运行相应的应用程序。

    1. 在窗口左上角单击Run运行该应用程序(参见图7)。 此外,你也可以选中Product > Run。

    图7. Xcode Run按钮

    图7. Xcode Run按钮

    Xcode会尝试在iOS仿真器中启动PhoneGap应用程序。 对于第一次启动,你将看到错误信息“ERROR: Start Page at 'www/index.html' was not found”。 别担心,这很正常! 尽管如此,在第一个步骤期间,已创建了www文件夹。 在将它添加到你的项目之后,你就不会再遇到该错误。

    1. 为了将www文件夹添加至你的项目,按住Ctrl键并且单击项目根目录,然后选中Add Files To "Hello"(参见图8)。

    图8. 准备为项目添加文件

    图8. 准备为项目添加文件

    1. 在打开的对话框中,选中新创建项目中的www文件夹。 你需要确保选中实际的www文件夹,而不是父文件夹或该文件夹中的相关内容。
    2. 选中Create Folder References For Any Added Folders(参见图9)。 如果你未选中该选项,那么你的项目将出现错误。

    图9. 在Xcode中为项目添加文件

    图9. 在Xcode中为项目添加文件

    1. 单击Add。

    现在,在你的项目根目录之下,你应该能够看到www文件夹(参见图10)。

    图10. 项目根目录中的www文件夹

    图10. 项目根目录中的www文件夹

    1. 单击Run以便再次启动该项目。

    至此,你应该已正确配置你的项目,并且应该能够在iOS仿真器中启动它。 如果你没有改变www文件夹中的任何HTML文件,那么当在iOS仿真器中运行你的应用程序时,你将在其中看到默认的PhoneGap启动页面(参见图11)。

    图11. iOS仿真器

    图11. iOS仿真器

    如果你看见该仿真器,那么现在你可以使用PhoneGap在Xcode中开始开发iOS应用程序。

    在Xcode中使用PhoneGap

    在正确地设置你的PhoneGap环境之后,回顾某些Xcode和PhoneGap基础知识将帮助你充分利用这一开发环境。

    一般来说, Xcode非常易于操作。 在屏幕的左侧,你将看到项目层级,而在屏幕的中心,你会看到主内容区域。 当你在左侧选中文件时,相应的内容将显示在主编辑区。

    下面是一个很多人不了解的简单技巧:在项目层级中单击文件则在同一窗口中显示该文件的内容;而双击文件则在新的窗口中打开该文件。

    如果你选中项目根目录,那么你将看到该项目的概要屏幕。 从该屏幕中,你可以在其它选项中轻松地设置包标识(bundle identifier)、应用程序版本、目标设备、图标、启动画面以及支持方向(参见图12)。 该屏幕对配置部署你的应用程序很有帮助。

    图12. 项目概要屏幕

    图12. 项目概要屏幕

    在Xcode窗口顶部,靠近Run按钮附近,有一个Scheme菜单,它能够让你改变项目编译方案以及指定目标设备或仿真器。 如需指定一个特定目标设备或改变iOS Simulator目标,只需单击相应的项目名称,然后选中一个可选设备或仿真器目标(参见图13)。 当下次运行该应用程序时,它将被部署至新的已选目标。

    图13. 选中一个新方案

    图13. 选中一个新方案

    请牢记PhoneGap应用程序的整个界面均使用HTML和JavaScript进行开发。 在www文件夹中,你需要维护在界面中使用的所有HTML组件。 如果你希望从远程位置添加额外的文件,那么你需要在PhoneGap.plist文件中将该位置添加到白名单中,否则,任何外部的请求将视为安全异常而被 阻止。

    在默认情形下,Xcode的内容区域将显示基于在项目层级中所选中文件的源代码(参见图14)。

    图14. Xcode编辑器

    图14. Xcode编辑器

    如果你更喜欢并排地打开和编辑多个文件,不用担心。 这一操作是可能的,尽管现在还不能立即知道如何进行这一操作。

    为了能够编辑并排打开的文件,单击位于Xcode窗口右上角的Show The Assistant Editor按钮(参见图15)。 一旦第二个编辑器实例处于可见状态,你便可以将项目层级左侧的文件拖至新的编辑器窗口中。 当你希望同时查看单独的HTML和JavaScript文件,或你希望同时查看本地插件和它的JavaScript界面时,上述操作特别有用。

    图15. 在Xcode中编辑并排放置的代码

    图15. 在Xcode中编辑并排放置的代码

    下一步阅读方向

    当你在Xcode中建立PhoneGap之后,你可以使用PhoneGap为iOS建立一些正式的应用程序。 记住,你需要使用HTML、CSS和JavaScript为用户界面创建PhoneGap应用程序。 这允许你通过使用传统的web开发技巧,方便地创建外观精美的应用程序。 如需了解更多使用TML、CSS和JavaScript创建的丰富体验,请查看 Adobe 开发人员连接HTML5和CSS3开发人员中心(Adobe Developer Connection HTML5 and CSS3 developer center)

    展开全文
  • iOS 添加Cordova到已存在的Xcode 工程里 Cordova官网关于如何创建PhoneGao项目的步骤已经很详细了,这里就不赘述了。 实际项目开发中可能需要添加Cordova到已经存在的工程中,近期就遇到了这个问题。网上找到...

    iOS 添加Cordova到已存在的Xcode 工程里


    Cordova官网关于如何创建PhoneGao项目的步骤已经很详细了,这里就不赘述了。

    实际项目开发中可能需要添加Cordova到已经存在的工程中,近期就遇到了这个问题。网上找到最新的教程如下:

     

    1.加入我们已经存在名为Demo项目,目录结构如下:

    \

    \

    2.拷贝Cordova相关文件到Demo目录下,拷贝后目录结构如下

    \

    3.将CordovaLib.xcodeproj添加到Demo工程中,右键选择Add Files To Demo

    \

    4.添加www目录到工程中,记得是勾选Create folder references

    5.按步骤三添加config.xml到工程中,目录结构如下

    \

    6.选择工程的Build Settings->Other Links, 设置-Objc -all_load

    \

    7.选择Build Phases->New Run Script Phase,将新增New Run Script Phase命名为copy www directory

    \

     

    \

    8.Build Phases->Target Dependencies添加CordovaLib

    9.Link Binary With Librarys添加libCordova.a, MobileCoreServices,AssetsLibrary

    \

    \

    \

    9.接下来你就可以正常使用Cordova了,注意other linkers一定要设置,

    '-[__NSCFConstantString JSONObject]: unrecognized selector sent to instance否则会提示类似的错误


    转自:

    http://www.bkjia.com/IOSjc/957673.html

    展开全文
  • 参考:Embedding Cordova WebView on iOS 开发环境: XCode 4.6 Cordova 2.3.0 准备工作 <1 新建config.xml文件 <?xml version="1.0" encoding="UTF-8"?> <cordova> <preference ...

    参考:Embedding Cordova WebView on iOS

     

    开发环境:

    XCode 4.6

    Cordova 2.3.0

     

    准备工作

    <1 新建config.xml文件

    <?xml version="1.0" encoding="UTF-8"?>
    <cordova>
        <preference name="KeyboardDisplayRequiresUserAction" value="true" />
        <preference name="SuppressesIncrementalRendering" value="false" />
        <preference name="UIWebViewBounce" value="true" />
        <preference name="TopActivityIndicator" value="gray" />
        <preference name="EnableLocation" value="false" />
        <preference name="EnableViewportScale" value="false" />
        <preference name="AutoHideSplashScreen" value="true" />
        <preference name="ShowSplashScreenSpinner" value="true" />
        <preference name="MediaPlaybackRequiresUserAction" value="false" />
        <preference name="AllowInlineMediaPlayback" value="false" />
        <preference name="OpenAllWhitelistURLsInWebView" value="false" />
        <preference name="BackupWebStorage" value="cloud" />
    
        <plugins>
            <plugin name="LocalStorage" value="CDVLocalStorage" />
            <plugin name="Device" value="CDVDevice" />
            <plugin name="Logger" value="CDVLogger" />
            <plugin name="Compass" value="CDVLocation" />
            <plugin name="Accelerometer" value="CDVAccelerometer" />
            <plugin name="Camera" value="CDVCamera" />
            <plugin name="NetworkStatus" value="CDVConnection" />
            <plugin name="Contacts" value="CDVContacts" />
            <plugin name="Debug Console" value="CDVDebugConsole" />
            <plugin name="File" value="CDVFile" />
            <plugin name="FileTransfer" value="CDVFileTransfer" />
            <plugin name="Geolocation" value="CDVLocation" />
            <plugin name="Notification" value="CDVNotification" />
            <plugin name="Media" value="CDVSound" />
            <plugin name="Capture" value="CDVCapture" />
            <plugin name="SplashScreen" value="CDVSplashScreen" />
            <plugin name="Echo" value="CDVEcho" />
            <plugin name="Battery" value="CDVBattery" />
            <plugin name="Globalization" value="CDVGlobalization" />
            <plugin name="InAppBrowser" value="CDVInAppBrowser" />
        </plugins>
    </cordova>

    新建config.xml文件,添加到项目中。

     

    <2 创建www目录

    在项目根目录下,创建文件夹www

    在www文件夹下,新建文件index.html文件

    范例:

    <!DOCTYPE html>
    <html>
        <head>
            <title></title>
            
            <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no;" />
            <meta charset="utf-8">
        
                <script type="text/javascript" charset="utf-8" src="cordova.ios.js"></script>
                <script type="text/javascript">
                    function onBodyLoad()
                    {
                        document.addEventListener("deviceready", onDeviceReady, false);
                    }
    
                    function onDeviceReady()
                    {
                        window.pageIsLoaded = true;
                        navigator.notification.alert("Cordova is working")        
                    }
                    </script>
                </head>
        <body onload="onBodyLoad()">
            <p>Hello World!</p>
        </body>
    </html>

    “Create folder references for any added folder”,添加到项目中

     

    1、添加CordovaLib子项目

    cordova-2.3.0/cordova-ios/CordovaLib下,将CordovaLib.xcodeproj拖拽到项目中

    TARGET-> Build Settings -> Other Linker Flags,添加 -all_load 和 -Obj-C 

    TARGET -> Build Phases -> Link Binaries with Libraries,添加一下frameworks:

    • AddressBook.framework
    • AddressBookUI.framework
    • AudioToolbox.framework
    • AVFoundation.framework
    • CoreLocation.framework
    • MediaPlayer.framework
    • QuartzCore.framework
    • SystemConfiguration.framework
    • MobileCoreServices.framework
    • CoreMedia.framework

    TARGET -> Build Phases -> Target Dependencies,添加CordovaLib

    TARGET -> Build Phases -> Link Binaries with Libraries,添加CordovaLia.a

    TARGET-> Build Settings -> Header Search Path,添加一下项:(注意:带引号

    "$(TARGET_BUILD_DIR)/usr/local/lib/include"

    "$(OBJROOT)/UninstalledProducts/include"

    "$(BUILT_PRODUCTS_DIR)" 

     

    2、使用

    新建CDVViewController子类

    示例:

    #import <UIKit/UIKit.h>
    #import <Cordova/CDVViewController.h>
    
    @interface ViewController : CDVViewController
    
    @end

     

    设置该对象的wwwFolderName属性,startPage属性

    示例:

    #import "AppDelegate.h"
    
    #import "ViewController.h"
    
    @implementation AppDelegate
    
    - (void)dealloc
    {
        [_window release];
        [_viewController release];
        [super dealloc];
    }
    
    - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
    {
        self.window = [[[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]] autorelease];
        self.viewController = [[ViewController new] autorelease];
        self.viewController.wwwFolderName = @"www";
        self.viewController.startPage = @"index.html";
        self.viewController.useSplashScreen = YES;
        
        self.window.rootViewController = self.viewController;
        [self.window makeKeyAndVisible];
        return YES;
    }
    
    @end

     

     运行结果:

     

     

    转载于:https://www.cnblogs.com/dyingbleed/archive/2013/02/01/2888747.html

    展开全文
  • 2019独角兽企业重金招聘Python工程师标准>>> ...
  • Cordova简介 Cordova是一个开源的移动开发框架,它允许你使用WEB开发技术(HTML5、CSS3、JavaScript)进行跨平台开发,可以在每个平台的封装器中执行,并且依赖规范的API对设备进行高效的访问,比如传感器、数据、网络...
  • 目前最新的cordova的版本是5.1.1,在mac下搭建开发环境步骤如下: 1)首先安装NODEJS环境 进入官网: http://nodejs.org/ ,目前的版本: v0.12.7 点击【INSTALL】,会下载mac的安装包,双
  • 链接: Cordova - 与iOS原生代码交互2(使用Swift开发Cordova的自定义插件) 下载上面博客的源码后需要修正的地方 1.新的cordova插件需要package.json文件,生成方法 1.npm install -g plugman 2.cd 到插件路径下,...
  • 当使用ionic开发app时,添加cordova插件后,xcode却报出缺少插件的错误,错误内容如下: ERROR: Plugin 'Device' not found, or is not a CDVPlugin. Check your plugin mapping in config.xml. 解决方法: 删除./...
  • cordova开发环境搭建: 一、cordova安装 1)安装Node.js -网址:https://nodejs.org/en/ version:10.15.1 LTS 安装根据软件安装方式安装,安装完成测试 node -v 或 npm 2)安装Cordova 前置条件:完成Node.js...
  • cordova ios模拟器调试js

    2018-09-05 15:05:56
    首先打包之后,xcode选择模拟器机型和版本运行以后, 打开safari浏览器,开发-模拟器-选择对应app名称,然后找到需要debugger的js文件,进行调试
  • 1.首先搭建Windows Cordova开发环境(这里不再一一说明,参照idea开发cordova项目) 2.主要说明再VMware macos虚拟机上运行Windows所创建的Cordova项目 1.1安装nodejs 从nodejs网站下载并安装,安装成功后,在...
  • 我们做一个简单的获取设备信息的demo,分两篇文章写完,分为原生部分和js部分 原生部分代码 头文件 #import @interface CDVGetDeviceInfo : CDVPlugin -(void)deviceInfo:(CDVInvokedUrlCommand *) command;...
  • 之前的项目中用到了angularjs+cordova+ionic,当时用的是win7系统,搭建的也是Android的环境,现在换了家新的公司发现需要在mac 上搭建开发环境。刚开始结束mac系统,所以不是那么熟悉,经过查找资料终于把环境搭建...
  • 最近项目需求,用unity...运用到的攻击:unity2018.314f1,xcode11,Cordova9.0.0 怎么安装Cordova环境,这就不去叙述了,官网上很详细;制作插件的相关的js代码,html代码 都不熟悉,是以前的同事写的;这个在Co...
  • android开发以前干过,但是一直觉得比较麻烦,缺少分享功能,现在的app大多数是h5的混合开发的app,需要用到原生的android API的时候需要去做兼容,如果是开发速度合并效率,还是混合的H5开发比较受企业的青睐。...
1 2 3 4 5 ... 20
收藏数 1,427
精华内容 570