在ios中恩沽,用H5編寫了可以打電話的頁面。點(diǎn)擊“撥打”按鈕后可以進(jìn)行跳轉(zhuǎn)到打電話的頁面(跳轉(zhuǎn)這一塊應(yīng)該是和瀏覽器有關(guān)),跳轉(zhuǎn)之后撥打完電話能夠回到之前打電話的頁面糯钙。
第一步:其實(shí)就是發(fā)送了一個get請求,url就是:tel:13587454758退腥;與h5交互:獲取到電話號碼(URL)超营;
第二步:[self openUrl:url];
第三步:
-(void)openUrl:(NSString *)urlStr{
NSURL *url = [NSURL URLWithString:urlStr];
UIApplication *application = [UIApplication sharedApplication];
if (![application canOpenURL:url]) {
NSLog(@"無法打開\"%@\", 請確保此應(yīng)用正確安裝", url);
}else
[[UIApplication sharedApplication]openURL:url];
}
獲取網(wǎng)頁url方式:
1.UIWebView
方法1:NSString *location =[webViewstringByEvaluatingJavaScriptFromString:@"document.location"]阅虫;
方法2:NSLog(@"webView location = '%@'", webView.request.URL.absoluteString);
以上兩種一定要放在頁面成功加載之后才可以的演闭!
- (void)webViewDidFinishLoad:(UIWebView *)webView {
NSString*currentURL = [webView stringByEvaluatingJavaScriptFromString:@"document.location.href"];
}
- (BOOL)webView:(UIWebView*)webView shouldStartLoadWithRequest:(NSURLRequest*)request
navigationType:(UIWebViewNavigationType)navigationType {
// 判斷是否是單擊
if (navigationType == UIWebViewNavigationTypeLinkClicked) {
NSString *currentURL= myWebView.request.URL.absoluteString;
NSLog(@"你單擊的網(wǎng)址是:%@", currentURL);
}
return YES;
}
2.WKWebview
#pragma mark 在發(fā)送請求之前,決定是否跳轉(zhuǎn)
- (void)webView:(WKWebView *)webView decidePolicyForNavigationAction:(WKNavigationAction *)navigationAction decisionHandler:(void (^)(WKNavigationActionPolicy))decisionHandler {
//? ? NSLog(@"%s",__FUNCTION__);
/**
*typedef NS_ENUM(NSInteger, WKNavigationActionPolicy) {
WKNavigationActionPolicyCancel, // 取消
WKNavigationActionPolicyAllow,? // 繼續(xù)
}
*/
NSString *reqUrl = [navigationAction.request.URL.absoluteString stringByRemovingPercentEncoding];
decisionHandler(WKNavigationActionPolicyAllow);
}