Re: [問題] uiwebview偵測到地址後開啟的方式
※ 引述《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
討論串 (同標題文章)
MacDev 近期熱門文章
PTT數位生活區 即時熱門文章