使用javascript调用刷新页面

时间:2012-09-29 20:59:09

标签: javascript iphone objective-c webview

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

我正在使用下一个代码来调用并显示结果:

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

每次我发送idNUmber我应该得到不同的页面,但问题是我发送一次到java脚本idNumber我正在显示新页面,但在用new {再次调用它之后{1}}我总是和上一页相同!如果我再次开始,那么也只显示第一个。

我试过了idNUmber,但它不起作用......

任何想法??

1 个答案:

答案 0 :(得分: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中的webView的位置,其他前面的函数在首次在模拟器中启动时会导致不良行为。我正在使用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

希望这有一些帮助。