【H5+ Quick-cocos2dx整合】之iOS 二 集成H5+ SDK
下载SDK
下载HTML 5+ 离线打包SDK (http://ask.dcloud.net.cn/article/103)点击下载SDK
下载完成后打开可以看到SDK、demo、Feature-iOS.xls 、IOS平台5+SDK技术白皮书.docx
Feature-iOS.xls:iOS平台各扩展Feature API对应的库文件列表,我们需要参照这个列表逐个添加。
IOS平台5+SDK技术白皮书.docx: 有集成的详细说明(照做即可)
添加 Frameworks 和Libraries
参照Feature-ios.xls列表,36行以内所有Frameword 和 Library都是H5+必须的依赖项,需要逐个添加到项目中(Link Binary With Libraries、Other LibrarianFlags中配置)
Feature名称:功能包的名称
LinkerFlagsà OtherLinker Flags
Library(.a) à Link Binary With Libraries
Info àInfo.plist File
Frameworkà LinkBinary With Libraries
下面以基础包为例,对项目所需资源进行配置。
添加LinkerFlags
Target à BuildSetting à Linking à Other Linker Flags
双击在打开小窗中依次添加-llibNavigator -lcoreSupport -llibPDRCore –llibUI
添加Library 和Framework
Target à BuildPhases à Link Binary With Libraries
单击“+”添加.a文件和Framework包
添加资源
Target à BuildPhases à Copy Bundle Resources
单击“+”添加.bundle文件
配置Info.plist File
Target à BuildSettings à Packaging à Info.plist File
编辑Info.plist文件,
添加: App Transport SecuritySettings:[类型:Dictionary]
Allow Arbitrary Loads:[类型:Boolean][值:YES]
配置引用包的路径
Target à BuildSettings à Search Pathes
Framework Search Paths:添加Framework的所在目录的路径
Library Search Paths:添加Library文件的所在目录的路径
引入H5+头文件
配置H5+ SDK资源文件
PandoraApi.bundle文件:5+SDK所必需要的资源文件。
位于:SDK/ Bundles/ PandoraApi.bundle,将该文件拖入项目中
或者通过targetàBuild PhasesàCopy Bundle Resources 添加资源文件
添加后结果:
之后我们自己的插件也需要在些配置才能正常工作。
control.xml文件:文件中配置了默认启动应用的APPID,如使用离线打包方式则需要添加此文件,如使用Widget或者Webview方式集成则不需要添加此文件
<key>NSAppTransportSecurity</key><dict> <key>NSAllowsArbitraryLoads</key> <true/></dict>
添加H5+ WebApp
Target à BuildPhases à Copy Bundle Resources
单击“+”,选择下载好的SDK目录下的Pandora文件夹。引用方式选择“folder referneces”.引用成功后,修改目录Pandora/apps/[appid]/www,apps的子目录名称应对control.xml中appid对应,同时修改manifest.json文件中id的值改为control.xml中appid的值相同。
集成功能代码
现在开始在原生生成代码的基础上进行集成。
1 设置5+SDK运行模式
在工程的AppDelegate类的添加代码,当应用启动时设置5+SDK的运行模式
-(BOOL)application:(UIApplication*)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
// 设置当前SDK运行模式
return [PDRCoreinitEngineWihtOptions:launchOptions withRunMode:PDRCoreRunModeAppClient];
}
2 在应用退出时添加销毁5+SDK运行环境
- (void)applicationWillTerminate:(UIApplication *)application
{
// Called when theapplication is about to terminate. Save data if appropriate. See alsoapplicationDidEnterBackground:.
[PDRCore destoryEngine];
}
3 启动5+运行环境
-(void)Start5pEngineAsWidget
{
PDRCore *h5Engine = [PDRCoreInstance];
CGRect newRect = self.view.bounds;
_containerView = [[UIViewalloc] initWithFrame:newRect];
_containerView.autoresizingMask =UIViewAutoresizingFlexibleWidth|UIViewAutoresizingFlexibleHeight;
// 设置5+内核的Delegate,5+API在修改状态风格和应用是否全屏时会调用
h5Engine.coreDeleagete = self;
h5Engine.persentViewController =self;
[self.viewaddSubview:_containerView];
// 设置WebApp所在的目录,该目录下必须有mainfest.json
NSString* pWWWPath = [[[NSBundlemainBundle] bundlePath]stringByAppendingPathComponent:@"Pandora/apps/h5/www/"];
// 设置5+SDK运行的View
[[PDRCore Instance] setContainerView:_containerView];
// 传入参数可以在页面中通过plus.runtime.arguments参数获取
NSString* pArgus = @"id=plus.runtime.arguments";
// 启动该应用
pAppHandle = [[[PDRCoreInstance] appManager]openAppAtLocation:pWWWPath withIndexPath:@"index.html" withArgs:pArgus withDelegate:nil];
}
对应头文件引用:
#import "PDRCore.h"
#import "PDRToolSystem.h"
#import "PDRToolSystemEx.h"
#import "PDRToolSystem.h"
#import "PDRToolSystemEx.h"
#import "PDRCoreAppFrame.h"
#import "PDRCoreAppManager.h"
#import "PDRCoreAppWindow.h"
#import "PDRCoreAppInfo.h"
至些H5 Plus集成完成,编译运行。
出错列表汇总:
错误1:
-canOpenURL: failed for URL:"hbuilder://" - error: "This app is not allowed to query forscheme hbuilder"
解决方法:在Info.plist中增加“LSApplicationQueriesSchemes类型 array”,再添加该项子项“streamapp”和“hbuilder”
错误2:在线更新h5报错
-canOpenURL: failed for URL:"itms-apps://itunes.apple.com/cn/app/hello-h5+/id682211190?l=zh&mt=8"- error: "This app is not allowed to query for scheme itms-apps"
错误3:原因是引用的“Pandora/apps/h5/www”方式不对,正确引用资源方式是选择“Createfolder referneces”
【H5+ Quick-cocos2dx整合】之iOS 二 集成H5+ SDK相关推荐
- ios html5上架,iOS原生集成H5+详细流程
iOS原生集成H5+ 集成方式 独立应用方式集成 Widget方式集成 WebView方式集成 可以打开官方链接: 选择 5+SDK -> 5+SDK集成 -> 平台 下查看集成方式 独立 ...
- 【H5+ Quick-cocos2dx整合】之iOS 三 集成Quick-Cocos2dx SDK
添加Quick-cocos的依赖项目 依赖项目位于下载的Quick-Cocos2dx目录下 /build/cocos2d_libs.xcodeproj /cocos/scripting/lua-bin ...
- 李洪强iOS之集成极光推送二iOS 证书 设置指南
李洪强iOS之集成极光推送二iOS 证书 设置指南 创建应用程序ID 登陆 iOS Dev Center 选择进入iOS Provisioning Portal. 在 iOS Provisioning ...
- 前端MUI+H5+HBuilderX开发APP(IOS,android),后台Springboot,java学习与实践文章,更新中(二)
前端MUI+H5+HBuilderX开发APP(IOS,android),后台Springboot,项目搭建,图标设置等,更新中(二) 新建我的第一个APP manifest.json: 图标设置: ...
- ios浏览器微信支付回调页面_iOS集成H5微信支付实现跳转与回调的解决方案
前言 最近有个需求,不能在iOS客户端内集成支付宝和微信的App支付SDK(为了防苹果审核检测SDK),因此使用H5支付,虽然微信和支付宝的H5支付文档都说不要在App内使用H5支付而是使用App支付 ...
- quick cocos2dx 3.x 配置win32工程
公司项目主体部分用c++,而ui部分用lua写,所以选择了用quick框架.项目先开发了ios/mac版,这两天试着配置其win32工程,遇到一些问题,记录一下(纯c++版本cocos2dx配置方法应 ...
- iOS 二维码扫描(zxing)的使用教程
ZXing(Github镜像地址)是一个开源的条码生成和扫描库(开源协议为Apache2.0).它不但支持众多的条码格式,而且有各种语言的实现版本,它支持的语言包括:Java, C++, C#, Ob ...
- iOS内实现h5原生开发
介绍 Xcode可以直接引入h5的界面,实现原生界面内嵌h5开发.其实这里不止iOS可以这样做,安卓也可以引用同样的h5界面,实现界面使用同一份h5代码. 为什么要写h5的界面呢,原因是第一Xcode ...
- iOS直播集成和问题总结(阿里云直播)
https://www.jianshu.com/p/714ce954e628 最近接手公司的直播项目,对以前遗留的问题做处理和优化, 于是顺便看了下阿里云直播的文档,在下面写下对直播的理解和遇到的问题 ...
最新文章
- 第二单元linux系统
- gradle构建android项目
- showModalDialog跨域访问的解决
- Matlab画三维曲线入门
- wireshrk中的名词说明
- Selenium_WebDriver操作iFrame日历框和复选框_Java
- 如何根据一个ABAP类方法的名称反差到类名称
- controller调用另一个controller中的方法 获取返回值_必须掌握!你知道 Spring 中运用的 9 种设计模式吗 ?...
- 认识Skeleton Screen【屏幕加载骨架】
- 1030 完美数列 (25 分)二分
- Fast R-CNN整体把握
- python语法报错_Python语法的常见错误和处理异常
- hadoop和hdfs命令_Hadoop 1.x和2.x HDFS基本开发人员命令,“ hadoop”命令
- Java中HashMap原理
- manage.py和simplejson调用报错解决
- 082 typing模块
- 全面Severless化只需7天!看南瓜电影的云上极速升级
- webpack项目篇(六十六):react 全家桶 和 webpack 开发 h5 商城项目的整体思路
- 设计模式学习(四)工厂模式
- 苹果手机屏幕尺寸_Apple 苹果 iPhone SE2智能手机屏幕测评报告 「Soomal」