2012-09-29 80 views
0

我有一些webView的和一个viewController设置小webView和通过调用具有不同值的java脚本来显示页面。用java脚本调用刷新页面

我用下面的代码来调用并显示结果:

NSString * js = [NSString myScript:@"%@('%@');",@"showPageById", idNumber]; 
[self.webView stringByEvaluatingJavaScriptFromString:js]; 
     [self.viewController.view addSubview:self.webView]; 

每次我送idNUmber我应该得到不同势页面,但问题是我后发送一次,以Java脚本idNumber我是显示新页面,但在用新的名称再次调用idNUmber后,我总是收到相同的前一页!如果我再次开始,所以也只显示第一个。

我试图reload但它不工作...

任何想法?

+0

您确定isNumber在两次调用之间发生变化吗?检查以确定您的脚本正确处理了不同的idNumbers。尝试将你的JavaScript放在一个文件中,并在你的普通浏览器中运行它并运行它,看看你在两次调用之间得到了什么。同时检查你从哪里调用函数。 –

+0

由日志idNumber更改为100%,也当我在浏览器上运行它的作品,因为它应该工作 – vadim

回答

0

好的我做了一个简单的视图控制器,它将UIWebView手动添加到自己,就像你试图做的一样。另外它是一个私人的UIWebView。我创建了一个简单的按钮,它将alert()传递给UIWebView并且它每次都有效,所以这里是整个代码,以便您可以看到发生了什么。

.h文件中

#import <UIKit/UIKit.h> 

@interface SOFViewController : UIViewController 
// This is linked as action thru nib. 
- (IBAction)hitMe:(UIButton *)sender; 

@end 

.m文件

这里请注意,在这里我先调用JavaScript到这是在ViewDidAppear web视图的位置,其他前功能将导致首次在模拟器中启动时出现不良行为。我正在使用Xcode 4.3

#import "SOFViewController.h" 

@interface SOFViewController() 
{ 
    int idNumber; 
    UIWebView *webViewMain; 
} 

@end 

@implementation SOFViewController 


- (void)viewDidLoad 
{ 
    [super viewDidLoad]; 
    // Do any additional setup after loading the view, typically from a nib. 
    webViewMain = [[UIWebView alloc] initWithFrame:CGRectMake(50.0, 50.0, 50.0, 50.0)]; 
    [self.view addSubview:webViewMain]; 
} 
-(void)viewDidAppear:(BOOL)animated 
{ 
    [super viewDidAppear:animated]; 
    idNumber = idNumber + 1; 
    NSString * js = [NSString stringWithFormat:@"alert('%d');",idNumber]; 

    [webViewMain stringByEvaluatingJavaScriptFromString:js]; 
} 
- (void)viewDidUnload 
{ 
    [super viewDidUnload]; 
    // Release any retained subviews of the main view. 
} 

- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation 
{ 
    return (interfaceOrientation != UIInterfaceOrientationPortraitUpsideDown); 
} 

- (IBAction)hitMe:(UIButton *)sender { 
    idNumber = idNumber + 1; 
    NSString * js = [NSString stringWithFormat:@"alert('%d');",idNumber]; 
    [webViewMain stringByEvaluatingJavaScriptFromString:js]; 
} 
@end 

希望这有一些帮助。