2015-06-22 27 views
0

我對iOS開發完全陌生,所以請不要假設我在這方面的專業知識。從其他方法在webview中打開鏈接

我在我的項目中成功實現了一個webview,併爲其分配了一個url,以加載'viewDidLoad'方法。這工作正常。當我嘗試從AppDelegate的'handleOpenURL'方法中加載一個url時,沒有任何反應,因爲引用的webview是零。

的ViewController:

@interface ViewController() 
    @property (retain, nonatomic) IBOutlet UIWebView *webview; 
@end 

- (void)viewDidLoad { 
    [super viewDidLoad]; 

    NSString *fullURL = @"http://www.google.com/"; 
    NSURL *url = [NSURL URLWithString:fullURL]; 
    NSURLRequest *requestObj = [NSURLRequest requestWithURL:url]; 
    [_webview loadRequest:requestObj]; 
} 

的AppDelegate:

- (BOOL)application:(UIApplication *)application handleOpenURL:(NSURL *)requesturl { 
    // handler code here 
    return YES; 
} 

我的問題是:如何從其他方法中針對網頁流量?

回答

0

這種方法是「詢問代表打開由URL標識的資源」

如果使用自定義URL方案,就像如果你不打開像谷歌的網址或LOD頁面

0

將iOS與Facebook SDK集成,那麼您將使用此方法,而不是在webview中打開Goog​​le或任何其他網址。它不是必要的,你可以加載只在viewDidLoad方法,您可以在web視圖中的視圖 - 控制的任何其他方法

+0

嗨Bhanu,我正在使用一個URL方案重新打開應用程序。重新打開應用程序工作正常。入口點是'handleOpenURL',但我無法從webview加載網址,因爲webview爲零。 –

0

你應該尋找的URL在application:handleOpenURL:在AppDelegate中,然後在application:handleOpenURL: init和打開的ViewController

加載網址
+0

嗨Bogren,我可以得到handleOpenURL中的網址。我不明白'..in handleOpenURL:init'並打開ViewController ..'你能澄清一點嗎? –

+0

你可能想要做的是啓動你的Viewcontroller並顯示它?您的ViewController存在於您的應用程序中:打開應用程序,然後可以通過從視圖層次結構中獲取控制器來將url傳遞給viewcontroller。 注意;可能會有不同的情況。 1.當viewcontroller不存在時,你需要初始化並呈現它2.當它存在並且只需要傳遞url 3.當它被初始化但不存在時,那麼我建議你重置堆棧到根視圖控制器然後呈現你的Viewcontroller並傳遞網址。 –

+0

是的,它存在。我可以調用一個方法。從那個方法我試圖瞄準webview,但它是零。我認爲我需要說的是:'這是你必須瞄準的webview',但我不知道如何。 –