2011-01-06 12 views
18

मुझे UIWebView के लोड HTMLString के साथ एक अजीब समस्या है, जहां यह केवल एक खाली दृश्य प्रदर्शित करेगा जब मैंने अपनी सामग्री HTML स्ट्रिंग के साथ loadHTMLString कहा था। इससे कोई फर्क नहीं पड़ता कि htmlstring की सामग्री क्या है, यह बस कुछ भी नहीं करता है।UIWebView loadHTMLString रिक्त स्क्रीन दिखाता है

अजीब बात यह है कि यह कुछ हफ्ते पहले काम करता था, जब मैंने सिम्युलेटर और डिवाइस पर इसका परीक्षण किया था। मेरे कोड के नीचे है:

NSMutableString *sHtmlBuf = [NSMutableString stringWithString:@"<body style=\"background-color: #000000; color: #FFFFFF; font-family: Helvetica; font-size: 10pt; width: 300px; word-wrap: break-word;\">"]; 

if ([m_oCallArray count] > 0 || [m_oPutArray count] > 0) { 
    [sHtmlBuf appendString:sWarrTitle]; 

    if ([m_oCallArray count] > 0) { 
     NSString *formattedCall = [NSString stringWithFormat:@"%@ %@<br />",sCallTitle,[self arrayToString:m_oCallArray]]; 
     [sHtmlBuf appendFormat:@"%@ ",formattedCall]; 
    } 

    if ([m_oPutArray count] > 0) { 
     NSString *formattedPut = [NSString stringWithFormat:@"%@ %@<br />",sPutsTitle,[self arrayToString:m_oPutArray]]; 
     [sHtmlBuf appendFormat:@"%@ ",formattedPut]; 
    } 

} 

if ([m_oBullArray count] > 0 || [m_oBearArray count] > 0) { 
    [sHtmlBuf appendString:sCbbcTitle]; 

    if ([m_oBullArray count] > 0) { 
     NSString *formattedBull = [NSString stringWithFormat:@"%@ %@<br />",sBullTitle,[self arrayToString:m_oBullArray]]; 
     [sHtmlBuf appendFormat:@"%@ ",formattedBull]; 
    } 

    if ([m_oBearArray count] > 0) { 
     NSString *formattedBear = [NSString stringWithFormat:@"%@ %@<br />",sBearTitle,[self arrayToString:m_oBearArray]]; 
     [sHtmlBuf appendFormat:@"%@ ",formattedBear]; 
    } 

} 

if ([m_oOtherArray count] > 0) { 
    NSString *formattedOther = [NSString stringWithFormat:@"%@ %@<br />",sOtherTitle,[self arrayToString:m_oOtherArray]]; 
    [sHtmlBuf appendFormat:@"%@ ",formattedOther]; 
} 

[m_oDataPresentView loadHTMLString:sHtmlBuf baseURL:nil]; 

(ध्यान दें: एचटीएमएल यह समस्या पहले भी एक नियमित रूप से वेब ब्राउज़र पर प्रदान कर सकते हैं, तो एचटीएमएल एक समस्या नहीं है)

संपादित करें: जोड़ा प्रवर्तन कोड:

//Create wcbbc panel 
wcbbcPanel = [[WarrantsAndCbbc alloc] initWithFrame:CGRectMake(320, 0, 320, 230)]; 
[m_oMainContentScrollView addSubview:wcbbcPanel]; 

UIView प्रवर्तन कोड:

- (id)initWithFrame:(CGRect)frame { 

    self = [super initWithFrame:frame]; 
    if (self) { 
     // Initialization code. 
     CGRect oFrame = frame; 
     CGPoint oPositionCoords = CGPointMake(0, 0); 
     oFrame.origin = oPositionCoords; 

     m_oDataPresentView = [[UIWebView alloc] initWithFrame:oFrame]; 
     [m_oDataPresentView loadHTMLString:@"<html><body style=\"background-color: #000000; color: #FFFFFF; font-family: Helvetica; font-size: 10pt; width: 300px; word-wrap: break-word;\"></body></html>" baseURL:nil]; 
     m_oDataPresentView.delegate = self; 

     [self addSubview:m_oDataPresentView]; 
    } 
    return self; 
} 
+0

क्या आप हमें वह कोड दिखा सकते हैं जहां आप 'UIWebView' को तुरंत चालू करते हैं और इसे अपने दृश्य में जोड़ते हैं? – donkim

उत्तर

40

जासूसी काम का एक सा के बाद, मुझे पता चला है कि प्रतिनिधि समारोह

- (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType 

में नहीं लौटने loadHTMLString अनुरोध अस्वीकार कर देंगे। वापस लौटने से मेरी समस्या हल हो गई।

+1

कोई विचार क्यों यह पहले से काम नहीं किया? अर्थात। किया बदल गया? –

+0

shouldStartLoadWithRequest पूछता है कि पृष्ठ को लोड करने के साथ वेबव्यू आगे बढ़ना चाहिए या नहीं। लौटने से वेब पेज लोड होने से रोकता है। – futureelite7

+2

मेरे मामले में, मैं उन्हें सफारी को भेजने के लिए लिंक को अवरुद्ध करना चाहता था। ऐसा करने के लिए: 'अगर (नेविगेशन टाइप == UIWebViewNavigationTypeLinkClicked) वापस नहीं; अन्यथा हाँ वापस; '। – Max

0

के लिए अपने प्रवर्तन कोड से, ऐसा लगता है कि आप स्क्रीन पर बंद होने वाली स्थिति में wcbbcPanel जोड़ रहे हैं। बजाय इस प्रयास करें:

wcbbcPanel = [[WarrantsAndCbbc alloc] initWithFrame:CGRectMake(0, 0, 320, 230)]; 
6

मैं सिर्फ एक ही समस्या थी, और एक n00b जा रहा है, मैं, अपने आप हैरान होंगे कि समस्या हल हो गया था जब मैं

webview = [[UIWebView alloc]init]; 

लेकिन इसके बजाय नहीं किया पाया, क्योंकि यह पहले से ही एक दुकान के रूप में तार किया गया था , मुझे बस

[webView loadHTMLString:mystring baseURL:nil]; 
+0

इससे मुझे बहुत मदद मिली। मुझे लगता है कि एआरसी के साथ आपको अपने सामानों को और अधिक नहीं करना पड़ेगा? – jocull