// shangCheng.h
#import <Foundation/Foundation.h>
#import "cocos2d.h"
#import "platform/ios/CCEAGLView-ios.h"
@interface shangCheng : NSObject<UIWebViewDelegate>{
}
@property(nonatomic,retain)CCEAGLView * MyEaglView;
@property(nonatomic,retain)UIWebView * MyWebView;
@property(nonatomic,retain)UIActivityIndicatorView * MyActivity;
+(shangCheng *)deDaoEaglView : (CCEAGLView *)egvl;
+(BOOL)CreatShangChengWebViewWithURL : (NSString *)SHOPURL;
- (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType;
- (void)webViewDidStartLoad:(UIWebView *)webView;
- (void)webViewDidFinishLoad:(UIWebView *)webView;
- (void)webView:(UIWebView *)webView didFailLoadWithError:(NSError *)error;
@end
</pre><pre name="code" class="objc">
// shangCheng.m
#import "shangCheng.h"
@implementation shangCheng
static shangCheng * AshangCheng = nil;
+(shangCheng *)deDaoEaglView : (CCEAGLView *)egvl
{
if (!AshangCheng) {
AshangCheng = [shangCheng new];
AshangCheng.MyEaglView = egvl;
UIActivityIndicatorView * activity = [[UIActivityIndicatorView alloc] initWithActivityIndicatorStyle:UIActivityIndicatorViewStyleGray];
activity.color = [UIColor redColor];
AshangCheng.MyActivity = activity;
return AshangCheng;
}else{
return AshangCheng;
};
}
+(BOOL)CreatShangChengWebViewWithURL : (NSString *)SHOPURL{
shangCheng * shang = [shangCheng deDaoEaglView:nil];
CCEAGLView * egvl = shang.MyEaglView;
UIWebView * webView = [[UIWebView alloc] initWithFrame:egvl.bounds];
shang.MyWebView = webView;
webView.delegate = AshangCheng;
NSURLRequest *request =[NSURLRequest requestWithURL:[NSURL URLWithString:SHOPURL]];
[egvl addSubview: webView];
[webView loadRequest:request];
CGRect rx =[UIScreen mainScreen].bounds;
shang.MyActivity.center = CGPointMake(rx.size.width/2, rx.size.height/2);
[egvl addSubview:shang.MyActivity];
return YES;
}
- (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType
{
NSURL * URL = request.mainDocumentURL;
if ([URL.absoluteString isEqual: @"item:back"]) {
shangCheng * shang = [shangCheng deDaoEaglView:nil];
[shang.MyWebView removeFromSuperview];
return NO;
};
shangCheng * shang = [shangCheng deDaoEaglView:nil];
[shang.MyActivity startAnimating];
return YES;
}
- (void)webViewDidStartLoad:(UIWebView *)webView
{
}
- (void)webViewDidFinishLoad:(UIWebView *)webView
{
shangCheng * shang = [shangCheng deDaoEaglView:nil];
[shang.MyActivity stopAnimating];
}
- (void)webView:(UIWebView *)webView didFailLoadWithError:(NSError *)error
{
}
@end
调用:
if(cc.sys.os == cc.sys.OS_IOS || cc.sys.os == cc.sys.OS_OSX){
var ret = jsb.reflection.callStaticMethod("shangCheng", "CreatShangChengWebViewWithURL:", "http://www.baidu.com");
if (ret) {
cc.log("创建成功!");
}
if (!ret) {
cc.log("创建失败");
}
}
上面有两个OC文件,放在Xcode工程iOS文件夹下即可。在Cocos2d-js工程里面调用上面的javascript代码段即可。