2014-01-30 3 views
1

У меня есть два контроллера вида, диспетчер представлений 1 и контроллер просмотра 2.viewController 1 содержит веб-просмотр. Я нажимаю контроллер 2 просмотра поверх контроллера 1, когда я нажимаю ссылку внутри веб-представления. После сканирования штрих-кода в viewcontroller 2, я передаю отсканированные данные в виде функции viewcontroller1. Затем i pop viewController 2 находится в верхней части экрана. Я не могу получить доступ к свойству webview в viewcontroller 1 и отображать штрих-код как предупреждение javascript. Цените свою помощь в этом.Невозможно выполнить функцию javascript внутри UIWebView?

Вот ViewController 1

#import <UIKit/UIKit.h> 
#import <AVFoundation/AVFoundation.h> 




@interface ADMSViewController : UIViewController <UIWebViewDelegate> 
{ 




} 
@property (nonatomic,retain) IBOutlet UIWebView *webView; 
@property (weak, nonatomic) IBOutlet UIActivityIndicatorView *activityIndicator; 
@property (nonatomic) BOOL restoringState; 


- (IBAction)backButtonPressed:(id)sender; 
-(void)pasteVinInTextBox : (NSString *)vin; 

@end 

Вот его corrosponding .m файлу

#import "ADMSViewController.h" 

@implementation ADMSViewController 


- (void)viewDidLoad { 
    [super viewDidLoad]; 
     // Do any additional setup after loading the view, typically from a nib. 
    [_webView setDelegate:self]; 
    [_webView loadRequest:[NSURLRequest requestWithURL:[NSURL URLWithString:@"http://google.com/"]]]; 
    } 

//- (void)didReceiveMemoryWarning //{ // [super didReceiveMemoryWarning]; // // Dispose of any resources that can be recreated. //} 

- (void)viewWillAppear:(BOOL)animated { 
    [super viewWillAppear:animated]; 
    [self.navigationController setNavigationBarHidden:YES animated:animated]; } 

- (void)viewWillDisappear:(BOOL)animated { 
    [super viewWillDisappear:animated]; 
    [self.navigationController setNavigationBarHidden:NO animated:animated]; } 


-(void)webViewDidStartLoad:(UIWebView *)webView { 
    [_activityIndicator startAnimating]; } 

- (void)viewDidUnload { 
    [super viewDidUnload]; } 

-(void)webViewDidFinishLoad:(UIWebView *)webView { 
    [_activityIndicator stopAnimating]; } 

- (IBAction)backButtonPressed:(id)sender { 
    [_webView goBack]; } 

-(void)pasteVinInTextBox:(NSString *)vin { 
    NSLog(@"%@",vin); 
    _webView = [[UIWebView alloc]init]; 
    [_webView stringByEvaluatingJavaScriptFromString:@"alert('Trigger the JS!');"]; } 



@end 

Вот файл barcodeScanner.m

#import "ADMSBarcodeScanner.h" 


@implementation ADMSBarcodeScanner 


- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil 
{ 
    self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil]; 
    if (self) { 
     // Custom initialization 

    } 

    return self; 
} 

- (void)viewDidLoad 
{ 
    [super viewDidLoad]; 
    // Do any additional setup after loading the view. 
    // ADD: present a barcode reader that scans from the camera feed 
    ZBarReaderViewController *reader = [[ZBarReaderViewController alloc] init]; 
    reader.readerDelegate = self; 
    reader.supportedOrientationsMask = ZBarOrientationMask(UIInterfaceOrientationLandscapeRight); 

    ZBarImageScanner *scanner = reader.scanner; 
    // TODO: (optional) additional reader configuration here 

    // EXAMPLE: disable rarely used I2/5 to improve performance 
    [scanner setSymbology: ZBAR_I25 
        config: ZBAR_CFG_ENABLE 
         to: 0]; 
+0

Смотрите этот ответ: http://stackoverflow.com/a/1585854/188331 – Raptor

+0

ее не работает – user3240231

+0

Просьба уточнить " не работает " – Raptor

ответ

0

измените эту строку

[_webView stringByEvaluatingJavaScriptFromString:@"alert('Trigger the JS!');"]; 

Как

[_webView stringByEvaluatingJavaScriptFromString:@"alert(\"Trigger the JS!\");"]; 

это работает для меня.

0

webViewDidFinishLoad: Отправлено после того, как веб-представление завершает загрузку кадра.

- (void)webViewDidFinishLoad:(UIWebView *)webView 

вызов как

-(void)webViewDidFinishLoad:(UIWebView *)webView{ 

     [self.webView stringByEvaluatingJavaScriptFromString:@"alert('Trigger the JS!');"]; 


    } 

ссылку вы понимаете, ясно uiwebview-javascript-and-objective-c

Смежные вопросы