這似乎是一個奇怪的一個。甚至不知道是否有可能!使用HTML頁面上的一個按鈕來調用的Xcode IBAction爲
我有一個加載本地HTML頁面一個UIWebView。在這個html頁面上,我有一個按鈕。
我想按一下按鈕,然後調用在Xcode的IBAction爲。
我該怎麼辦?或者你甚至可以這樣做?
謝謝你們,
Stefan。
這似乎是一個奇怪的一個。甚至不知道是否有可能!使用HTML頁面上的一個按鈕來調用的Xcode IBAction爲
我有一個加載本地HTML頁面一個UIWebView。在這個html頁面上,我有一個按鈕。
我想按一下按鈕,然後調用在Xcode的IBAction爲。
我該怎麼辦?或者你甚至可以這樣做?
謝謝你們,
Stefan。
您可以通過使用自定義協議來實現。在你的html文件中,你可以鏈接到類似myProtocol://callSomeAction
的東西。
然後在您的UIWebViewDelegate
(可能是你UIViewController
),你必須實現調用的方法:
- (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType
(文檔here)
的想法是,該代碼,您檢測根據協議request
參數中的數據。如果是myProtocol
,則可以撥打IBAction
並返回NO
。如果是其他內容,則可以使用Web視圖加載頁面,然後返回YES
。
的代碼會是這個樣子:
- (BOOL)webView:(UIWebView *)webView
shouldStartLoadWithRequest:(NSURLRequest *)request
navigationType:(UIWebViewNavigationType)navigationType {
NSString* scheme = [[request URL] scheme];
if ([@"myProtocol" isEqual:scheme]) {
// Call your method
return NO;
} else {
return YES;
}
}
讓HTML頁面上的按鈕打開自定義網址,如myapp://buttonclick
。
在Web視圖的委託,實施webView:shouldStartLoadWithRequest:navigationType:
。檢查請求是否包含您的自定義URL,如果有,請調用您想要的任何Obj-C方法。
你能也許告訴我我哪裏錯了?我已經嘗試了以上,但它似乎並沒有工作。這是我的HTML。
你可以告訴我這是怎麼完成的。因爲我無法弄清楚。謝謝。 – StefanHanotin 2010-11-08 14:50:46
只需添加一些示例代碼。希望對你有效。 – pgb 2010-11-08 15:15:56
你我的朋友是英雄!太感謝了! – StefanHanotin 2010-11-08 15:25:27