3

似乎每个人都知道一些愚蠢的事情,但在 PhoneGap 中不允许您在应用程序中使用 iFrame。那里有许多修复程序,但它们要么适用于旧版 PhoneGap,要么不起作用,要么导致其他问题。这是我到目前为止所尝试的:

  1. OpenAllWhitelistURLsInWebView

  2. http://craigpfau.com/2012/02/phonegap-ios-uiwebview-and-safari-app-links/

  3. 如何在 Safari 中打开外部链接而不是应用程序的 UIWebView?

似乎没有任何效果。这是我要完成的工作:

  1. 来自 vimeo (iframe) 的视频嵌入留在应用程序中,外部主机:vimeo.com a.vimeocdn.com b.vimeocdn.com
  2. 所有其他链接都指向 safari

这是我的应用程序详细信息:

ios 5.1.1 | 科尔多瓦 1.7.0 | JqueryMobile | jQuery 1.7.1

4

1 回答 1

7

我在这里有一个示例应用程序,它确实在应用程序内打开了 Vimeo 视频,但在 Safari 中打开了其他 url。

我在 MainViewController.m 中更改了以下函数

- (BOOL) webView:(UIWebView*)theWebView shouldStartLoadWithRequest:(NSURLRequest*)request navigationType:(UIWebViewNavigationType)navigationType
{
    NSURL *url = [request URL];
    NSString *host = [request.URL host];

    if(host != NULL || host != nil){
        if ([host rangeOfString:@"vimeo.co"].location != NSNotFound) {
            return YES;
        }else{
            if ([[url scheme] isEqualToString:@"http"] || [[url scheme] isEqualToString:@"https"]) {
                [[UIApplication sharedApplication] openURL:url];
                return NO;
            }
            else {
                return [ super webView:theWebView shouldStartLoadWithRequest:request navigationType:navigationType ];
            }
        }
    }

    return [super webView:theWebView shouldStartLoadWithRequest:request navigationType:navigationType];
}
于 2012-06-14T19:22:41.720 回答