2014-02-17 105 views
0

我嘗試從JavaScript使用IOS調用函數,但仍然無法幫助我請!UIWebView JavaScript與IOS問題

這個JavaScript

function geturl(getdata) { 
    // document.getElementById('test1').src = ''; 
    alert(getdata); 
} 

和IOS代碼

-(BOOL) webView:(UIWebView *)inWeb shouldStartLoadWithRequest:(NSURLRequest *)inRequest navigationType:(UIWebViewNavigationType)inType { 

    NSURL *URL = [inRequest URL]; 
    NSString *stringURL = [NSString stringWithFormat:@"%@",URL]; 
    NSString *urlString = inRequest.URL.absoluteString; 

    NSString * getdata = @"come please"; 
    NSString * sendBack = [NSString stringWithFormat:@"geturl('%@')",getdata]; 
    [subView stringByEvaluatingJavaScriptFromString:sendBack];// subView is UIWebview 

    return YES; 
} 

我嘗試使用這樣的,但數據沒有提醒我不知道發生什麼請幫助我!


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

     if (loadingPage < [book count]) { 

      NSURL *url = [NSURL fileURLWithPath:[[NSBundle mainBundle] pathForResource:[book objectAtIndex:loadingPage] ofType:@"html" inDirectory:@""]]; 
      [[scrollView.subviews objectAtIndex:loadingPage] loadRequest:[NSURLRequest requestWithURL:url]]; 
      [[scrollView.subviews objectAtIndex:loadingPage] setHidden:NO]; 
      loadingPage++; 
      subView.scrollView.bounces = NO; 
      [[subView scrollView] setBounces: NO];  
     } 
     NSString * getdata = @"come please"; 
     NSString * sendBack = [NSString stringWithFormat:@"geturl('%@')",getdata]; 
     [subView stringByEvaluatingJavaScriptFromString:sendBack]; 


    } 

我也試試這一個,但仍然沒有工作。如果我有什麼問題請告訴我

+1

什麼是子視圖?它是一個UIView嗎? – GenieWanted

+0

哦抱歉// subView是UIwebview。 – Kabitis

+0

我已經嘗試在' - (void)webViewDidFinishLoad:(UIWebView *)webView' T-T – Kabitis

回答

1

請確保subView是UIWebView對象,並且您鋼還需要返回YESNOshouldStartLoadWithRequest方法。 還有一個小小的解決方案 - 用模擬器或設備打開Safari瀏覽器調試器,並在控制檯中手動檢查此功能

+0

哦對不起,我已經'返回YES;'我會編輯我的問題。 – Kabitis

+0

'shouldStartLoadWithRequest'在加載任何內容之前調用,因此您需要添加一些不是第一次請求的檢查,或者將所有代碼移動到例如'webViewDidFinishLoad' – sage444

+0

謝謝,我已經在' - (void)webViewDidFinishLoad中嘗試: (UIWebView *)webView' TT,但感謝 – Kabitis