我可以在我的webview浏览器中创建一个可以调用特定功能的链接

时间:2014-08-07 06:12:24

标签: ios webview

我们在创建webview组件时使用的地址字符串中使用原生地理位置数据(例如http://example.com?long=36.333&latt=-143.222)。我们这样做的原因是我们想要查看位置,但不想使用浏览器位置工具,每天都会弹出警报,询问我们是否可以使用您的位置。

理想情况下,我希望能够创建一个新的webview组件(带有新的位置数据),以响应对webview组件中链接的点击。我知道我们可以通过链接调用应用程序(例如myappname://)但是我可以在此调用中添加参数来触发某些事件,例如我们重新加载webview组件的函数吗?

如果无法通过html中的链接完成,我假设我必须在页面上放置一个原生按钮并从那里调用它。

1 个答案:

答案 0 :(得分:0)

你可以做到。首先,在HTML内容中设置http://example.com?#SetCustomLocation之类的链接。

将WebView Delegate方法设置为如下:

-(BOOL) webView:(UIWebView *)inWeb shouldStartLoadWithRequest:(NSURLRequest *)inRequest navigationType:(UIWebViewNavigationType)inType
{
    if ( inType == UIWebViewNavigationTypeLinkClicked )
    {
        NSString *url = [NSString stringWithFormat:@"%@", [inRequest URL]];
        if([url hasSuffix:@"#SetCustomLocation"])
        {
            NSString *strURL = @"http://example.com?long=36.333&latt=-143.222"; //Set Custom URL with Lat/long Whatever you need
            NSURL *cURL = [NSURL URLWithString:[strURL tringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding]];

            [[UIApplication sharedApplication] openURL:cURL];
        }
    }
    return YES;
}

问候。