iOS UIWebView应用程序在Safari中打开链接
iOS UIWebView app opens link in Safari
我有一个iOS应用程序,它只有一个视图,那就是UIWebView(它打开应用程序的主要内容)。我想当我点击某个地方(e。(在表行上)应用程序在Safari浏览器中打开特定的链接,而不是在UIWebView中。
是可行的,不写任何iOS代码,而不是让JavaScript打开Safari本身的链接?
我有那个代码,但是它一点用都没有:
<tr class='link-to-pdf' data-href='www.example.com'>
JS代码:
$(".link-to-pdf").click(function () {
var a = document.createElement('a');
a.setAttribute("href", this.getAttribute("data-href"));
a.setAttribute("target", "_blank");
var dispatch = document.createEvent("HTMLEvents");
dispatch.initEvent("click", true, true);
a.dispatchEvent(dispatch);
});
在某些情况下,你可以告诉所有的链接在你的javascript有target="_blank"
,并将它们传递给窗口。使用'_system'参数打开。这将在iOS和Android上运行。
$(document).on('click', 'a[target="_blank"]', function(ev) {
var url;
ev.preventDefault();
url = $(this).attr('href');
window.open(url, '_system');
});
或者在您的情况下,只需将a.setAttribute("target", "_blank");
替换为a.setAttribute("target", "_system");
这在一个古老的项目中为我工作,但我不确定它是否仍然有效(在iOS和Android上)
如果上面的答案不适合你,你可以在iOS的方式修复它。为此,您需要实现webView:shouldStartLoadWithRequest
UIWebViewDelegate
协议方法来检查您的URL。
- (BOOL) webView: (UIWebView *) theWebView shouldStartLoadWithRequest:(NSURLRequest *) request navigationType: (UIWebViewNavigationType) navigationType
{
NSURL *url = [request URL];
// check URL in your if condition
if (...) {
//open URL in Safari
[[UIApplication sharedApplication] openURL:url];
return NO;
}
else
return [ super webView:theWebView shouldStartLoadWithRequest:request navigationType:navigationType ];
}
上面的答案有一个约束,你需要实现从JQuery通知ios应用程序的机制,可能的解决方案在这里讨论:https://stackoverflow.com/a/11633460/3317354
相关文章:
- 在新标签上打开链接,IE7-8和safari所有版本都无法使用
- 链接适用于所有浏览器,除了 safari(php 代码)
- 更新链接形状时,Safari中的SVG clipPath与USE断开
- 如何阻止iPhone web应用程序链接在Safari中打开
- 在ios上用Safari点击时更改链接的CSS
- 创建可在 Safari 浏览器中使用的书签链接
- Web 应用程序在 Safari 中打开链接,而不是在现有视图中打开链接
- iPad 网络应用程序在 Safari 中打开链接后冻结
- 如何在chrome浏览器中打开链接,即使默认的计算机浏览器是“Safari”
- 字体在Safari上出现了很棒的链接问题,适用于Chrome和Firefox
- 支持苹果移动网络应用程序的faq链接在safari开放
- 如何在Safari中打开外部链接而不是应用程序'的UIWebView
- ipad safari 8.0.2链接不可点击
- 长时间点击safari iphone上的链接后禁用上下文菜单
- Phonegap 3.5.0外部Safari窗口中的打开链接不起作用
- iPhone WebApp在safari中打开链接
- safari IE中的链接形状坐标浏览器
- 当请求带有下载头的链接时,Safari停止jquery动画
- 链接无法在Safari或InAppBrowser中打开
- 使用javascript从web应用程序强制链接在移动safari中打开