好的我做了一個簡單的視圖控制器,它將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
希望這有一些幫助。
您確定isNumber在兩次調用之間發生變化嗎?檢查以確定您的腳本正確處理了不同的idNumbers。嘗試將你的JavaScript放在一個文件中,並在你的普通瀏覽器中運行它並運行它,看看你在兩次調用之間得到了什麼。同時檢查你從哪裏調用函數。 –
由日誌idNumber更改爲100%,也當我在瀏覽器上運行它的作品,因爲它應該工作 – vadim