Re: [問題] uiwebview偵測到地址後開啟的方式

看板MacDev作者 (派斯麵)時間14年前 (2010/10/07 16:19), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串3/5 (看更多)
※ 引述《zonble (zonble)》之銘言: : ※ 引述《Piceman (派斯麵)》之銘言: : : uiwebview會直接開啟google map顯示地圖 : : 而且無法回到app中,只能選擇關掉重開 : : 我嘗試過將request轉送到新的uiwebview中 : : 但依然會另外開啟無法返回的google map : : 想請問的是,要用什麼方法讓地址(如台北市中山北路200號) : : 可以在app中呈現google map方法而又不會離開呢? : 實作 UI webview delegate 裡頭的 : - (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType : 用 NSURLRequest 裡頭的 URL 類型,判斷要開啟的是哪一種 : URL,攔截下來自己處理。 先謝謝z大的提示 其實攔截事件部分已經做出來了 現在是卡在傳送NSURLRequest,request.URL.scheme無法修改 主要原因是nsurl無法修改的問題 (打NSMutableURL會發現google上哀鴻遍野 XD 具體來說 //我使用uiwebview中偵測到地址時的url.scheme作為判斷 if ([request.URL.scheme isEqualToString:@"x-apple-data-detectors"] ) { //以下是測試request.URL中的資訊,結果註解在後 NSString* _t1=[request.URL absoluteString]; //out of scope NSURL* _t2=[request.URL absoluteURL]; //x-apple-date-detetors://1 NSURL* _t3=[request.URL baseURL]; //nil //由於iOS會攔截x-apple-data-detectors://這scheme並送到google map app //所以我打算建立新的URLRequest然後修改scheme傳給web NSMutableURLRequest* _newRequest=[NSURLRequest requestWithURL:request.URL]; //但URL是readonly屬性,無法修改 [_newRequest setValue:@"http://" forKey:@"scheme"]; classDetailViewController* _newDetail=[[classDetailViewController alloc]init]; _newDetail.p_addressRequest=_newRequest; [self.navigationController pushViewController:_newDetail animated:YES]; [_newDetail release]; } 等會會嘗試有沒有其他方法把建立一個不同scheme的url 如果不行,應該就只剩抓原始查詢參數 然後送到http://map.google取得經緯度再放到mapkit中的作法了 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 114.42.51.119
文章代碼(AID): #1ChOA5Ws (MacDev)
文章代碼(AID): #1ChOA5Ws (MacDev)