2012-09-29 83 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 

希望這有一些幫助。