UIWebView无法加载带有三个#符号(标签)的URL,但Safari运行良好



我有这个URL:http://m.10bet.com/#game_event#6404838#99数字总是不同的,但其中总是有三个#标签符号。UIWebView不加载它,但移动Safari加载,这是我的代码:

UIWebView *myWebView = [[UIWebView alloc] initWithFrame:frame];
NSURL * url = [NSURL URLWithString:@"http://m.10bet.com/#game_event#6404838#99"];
[myWebView loadRequest:[NSURLRequest requestWithURL:url]];

我知道如何处理URL中的一个#(但不是全部三个):

UIWebView *myWebView = [[UIWebView alloc] initWithFrame:frame];
NSURL *fullURL = [NSURL URLWithString:@"#game_event" relativeToURL:@"http://m.10bet.com/"];
[myWebView loadRequest:[NSURLRequest requestWithURL:fullURL]];

我也试着在URL中用%23替换#,但也不起作用。

我现在的解决方法是,我调用一个URL缩短器,它返回缩短后的URL并将其加载到UIWebView中,这可以正常工作,但速度相当慢。

有什么想法吗,伙计们?

试试这个:

 NSString *str = @"http://m.10bet.com/";
 NSURL * url = [NSURL URLWithString:str];
 [webview loadRequest:[NSURLRequest requestWithURL:url]];

在UIWebViewDelegate上,添加:

- (void)webViewDidFinishLoad:(UIWebView *)webView {
    [webView stringByEvaluatingJavaScriptFromString:@"window.location.href = '#game_event#6404838#99'"];
}

'#'是一个特殊字符,因此在加载到UIWebView之前需要对其进行编码。Mobile safari会在开始加载之前自动完成。因此,请将"#"替换为"%23",并尝试在UIWebView中加载它。

希望这将帮助您:)

最新更新