为什么shouldStartLoadWithRequest不在webview中加载my / amp版本,在safari中加载?

时间:2016-06-16 11:20:47

标签: ios objective-c swift webview uiwebview

我有一个带有UIWebView的iOS应用。 在我的网站中,我的所有网页都有一个/ amp版本( i.e www.website-example.com/pageX/amp )

我使用shouldStartLoadWithRequest:方法:url = [url URLByAppendingPathComponent:@"amp"]

如果我[[UIApplication sharedApplication] openURL:url];return false;(因此它在Safari中打开了网址),它会打开好/放大器版本。

否则,如果我return false(在追加 / amp 之后),它会打开网页视图中的网址,它不会打开/ amp版本,虽然URL包含/ amp。

编辑: 我正在添加Swift标记,因为它不是编程语言问题,它理解shouldStartLoadWithRequest方法。

有什么问题?

2 个答案:

答案 0 :(得分:0)

您无法将/amp附加到shouldStartLoadWithRequest中的网址,必须添加/amp并传递给loadRequest方法。它在野生动物园开启很好,因为你正在通过" good" url,但是在添加/amp之前UIWebView正在打开网址,而在shouldStartLoadWithRequest中你无法操纵网址。

答案 1 :(得分:-1)

你应该得到这个代码:

[webView loadRequest:[NSURLRequest requestWithURL:[NSString stringWithFormat:@"%@/amp", request.URL]]];
方法中的

- (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType;

那会对你有所帮助。