HTML5程序怎么打包成windows phne,ios和android的应用

HTML5程序怎么打包成windows phne,ios和android的应用,第1张

HTML5法度怎么打包成windows phone, ios和android的应用

*. PhoneGap Build Service可以帮助你创建Windows Phone, iOS和Android的应用。

已经用PhoneGap Build Service直接将原封不动的html5网站打包成.ipa和.apk包,并且安装成功。没有看到windows phone的包。生成.ipa包须要certification, profile和暗码。生成.ipa后用iTools撞到ipad。

随便提一下,从同事那儿懂得到iTools这个对象,用起来真的很便利。上了他们的官网懂得了一下,是腾讯出来的人做的。干的不错,默示激劝。欲望他们成长的越来越好。

别的:

* 打包成Android应用的参考办法,没有实验过。国人做的平台,看起来似乎还不错。

* 打包成iPad应用可能的办法,待实验。下面这个办法应当是最传统的将html混在iOS Objective-C应用中的办法,不消借助任何第三方的平台和对象。

应用一个UIWebView类,打开你的网页。

然后,打成ipa包就可以。

两种方法,一种是“普通封装+企业签名”,一种是“免签封装”

封装就是将HTML5网页封装成一个APP,安卓封装APP可以直接安装,但是ios系统对应用的安装是有限制的,非App Store下载的应用必须要做苹果签名才能成功安装,所以封装iOS应用后,还需要做一个签名。

另一种是免签封装,这个就比较方便了,这个是专门针对ios系统的,快速封装iOS应用且不需要签名。借助开发者服务平台 *** 作很简单。

免签封装步骤:

百度搜索亥著,只需要提供应用名称、网页网址、应用logo,就可以快速封装成一个ios应用了。

方法/步骤方法一:通过webview的delegate方法-(BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType;在上面这个函数中,通过截取NSURLRequest解析js中传递过来的参数,和网址再根据参数来调用已定义好的方法。但现在我们介绍另外一种方法。方法二:我们用 javascriptCore.framework 这个库。首先在建立一个UIWebView,代码如下:#import "webview.h" #import <JavaScriptCore/JavaScriptCore.h> @implementation webview -(id)initWithFrame:(CGRect)frame { self=[super initWithFrame:frame] if( self ){ self.webview=[[UIWebView alloc]initWithFrame:CGRectMake(0, 310, self.bounds.size.width, 300)] self.webview.backgroundColor=[UIColor lightGrayColor] NSString *htmlPath=[[NSBundle mainBundle] resourcePath] htmlPath=[htmlPath stringByAppendingPathComponent:@"html/index.html"] NSURL *localURL=[[NSURL alloc]initFileURLWithPath:htmlPath] [self.webview loadRequest:[NSURLRequest requestWithURL:localURL]] [self addSubview:self.webview] JSContext *context = [self.webview valueForKeyPath:@"documentView.webView.mainFrame.javaScriptContext"] context[@"log"] = ^() { NSLog(@"+++++++Begin Log+++++++") NSArray *args = [JSContext currentArguments] for (JSValue *jsVal in args) { NSLog(@"%@", jsVal) } JSValue *this = [JSContext currentThis] NSLog(@"this: %@",this) NSLog(@"-------End Log-------") } } return self } @end在上面代码中,我们先引入了javascriptCore.framework这个库,然后webview那一套就不多说了,注意我加载一个静态网页。然后我用JSContext *context = [self.webview valueForKeyPath:@"documentView.webView.mainFrame.javaScriptContext"]获取该UIWebview的javascript执行环境。在该javascript执行环境中,定义一个js函数,注意关键点来了,这个函数的执行体完全是 objective-c代码写的,也就是下面:context[@"jakilllog"] = ^() { NSLog(@"Begin Log") NSArray *args = [JSContext currentArguments] for (JSValue *jsVal in args) { NSLog(@"%@", jsVal) } JSValue *this = [JSContext currentThis] NSLog(@"-------End Log-------") } oc端已经写好了,我们现在进行html部分。看看UIWebView 中所加载的 html及其js代码是如何写的。<!DOCTYPE html> <html lang="en"> <head> <meta charset="utf-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1"> <meta http-equiv="Content-Type" content="text/htmlcharset=utf-8" /> <meta name="description" content=""> <meta name="viewport" content="width=device-widthinitial-scale=1.0"> <script type="text/javascript" src="index.js"></script></head> <button id="hallo" onclick="buttonClick()">点击button</button> </body> </html>上面html定义了一个button,然后引用index.js,点击button的响应函数为buttonClick() 。该函数在index.js中定义,如下 function buttonClick() { jakilllog("hello world") } 注意,jakilllog("hello world") 函数名jakilllog才是我们oc端调用的oc端调用时的代码。context[@"jakilllog"] = ^() { NSLog(@"Begin Log") NSArray *args = [JSContext currentArguments] for (JSValue *jsVal in args) { NSLog(@"%@", jsVal) } JSValue *this = [JSContext currentThis] NSLog(@"-------End Log-------") } 现在的流程是,点击button按钮,响应buttonClick(),去掉用buttonClick()这个方法function buttonClick() { jakilllog("hello world") } 然后执行jakilllog("hello world")并传参“hello world“ 这个函数。这个函数实现在我们oc端,所以调用方法:context[@"jakilllog"] = ^() { NSLog(@"Begin Log") NSArray *args = [JSContext currentArguments] for (JSValue *jsVal in args) { NSLog(@"%@", jsVal) } JSValue *this = [JSContext currentThis] NSLog(@"-------End Log-------") }


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

原文地址: http://outofmemory.cn/zaji/6115536.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-03-15
下一篇 2023-03-15

发表评论

登录后才能评论

评论列表(0条)

保存