【H5+ & Quick-cocos2dx整合】之iOS 二 集成H5+ SDK

【H5+ & Quick-cocos2dx整合】之iOS 二 集成H5+ SDK,第1张

概述下载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+S 下载SDK

下载HTML 5+ 离线打包SDK (http://ask.dcloud.net.cn/article/103)点击下载SDK

下载完成后打开可以看到SDK、demo、Feature-iOS.xls 、IOS平台5+SDK技术白皮书.docx


Feature-iOS.xlsiOS平台各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+内核的Delegate5+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全部内容,希望文章能够帮你解决【H5+ & Quick-cocos2dx整合】之iOS 二 集成H5+ SDK所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1081134.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-27
下一篇 2022-05-27

发表评论

登录后才能评论

评论列表(0条)

保存