【问题标题】:custom buttons on uiwebview(iphone)uiwebview(iphone)上的自定义按钮
【发布时间】:2011-05-07 09:00:50
【问题描述】:

我想在 webView 上添加自定义按钮。当我在 url 中尝试任何内容时,它们也应该在那里。

这怎么可能??

基本上我想在 uiwebView 上放置按钮,它们是自定义按钮

//编辑的代码...

我正在这样做...这里出现了链接,但没有调用方法...您的代码中没有任何错误..:)

NSString *imagePath = [[NSBundle mainBundle] resourcePath];
imagePath = [imagePath stringByReplacingOccurrencesOfString:@"/" withString:@"//"];
imagePath = [imagePath stringByReplacingOccurrencesOfString:@" " withString:@"%20"];

NSString *HTMLData = @"<html<a href=\"button://dosomething\" class=\"buttonStyle\">Click me!</a>--></style><br><br>";

[webView loadHTMLString:HTMLData baseURL:[NSURL URLWithString: [NSString stringWithFormat:@"file:/%@//",imagePath]]];

然后

- (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request   navigationType:(UIWebViewNavigationType)navigationType 
{
    // only do something if a link has been clicked...
    if (navigationType == UIWebViewNavigationTypeLinkClicked) {     

        // check if the url requests starts with our custom protocol:
        if ([[[request URL] absoluteString] hasPrefix:@"button://"]) {
            // Do custom code
            return NO;
        } 
    }
    return YES;
}

【问题讨论】:

  • 您可以在 webview 的内容中添加 html 按钮。
  • 是的,是的......我想这样做,但我该怎么做?
  • 你对 html 的内容有完全的控制权吗?
  • 是的,我对此有完全的控制权:)
  • nick...您的代码没有任何问题,但没有调用方法:(

标签: iphone objective-c ios uiwebview


【解决方案1】:

您只需要使用链接并设置它们的样式。

类似:

<a href="#" class="buttonStyle">Click me!</a>

看看http://www.cssbuttongenerator.com/,很容易创建你自己的按钮,让它为你生成css代码。您实际上必须单击按钮自行创建以生成代码。

通过单击 html 中的链接(按钮)执行自定义代码

首先你必须遵守 UIWebViewDelegate 协议,并相应地设置委托。

然后实现shouldStartLoadWithRequest

您的按钮链接应如下所示:

<a href="button://dosomething" class="buttonStyle">Click me!</a>

我们正在使用我们制定的自定义协议:button://

现在像这样实现 shouldStartLoadWithRequest:

- (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType 
{
    // only do something if a link has been clicked...
    if (navigationType == UIWebViewNavigationTypeLinkClicked) {     

            // check if the url requests starts with our custom protocol:
        if ([[[request URL] absoluteString] hasPrefix:@"button://"]) {
            // Do custom code
            return NO;
        } 
    }

    return YES;
}

就是这样。

【讨论】:

  • 好的...我正在尝试它..会让你知道..谢谢 :) 和 :)
  • 好吧..nick...这是真实的...我有一些 html 代码,我希望在我的 iphone 屏幕上有一些按钮,每当我触摸那个按钮时,一些特定的方法应该被调用..如何在那里使用这个按钮??
  • 我就知道这个问题会来的:)我一会儿再解释。
  • 因为这里只有链接即将到来..:) 点击我链接,我是否必须在我的 .m 文件中为该按钮实现 CSS??
  • 只是一个问题:点击按钮时需要调用objective-c方法,对吧?您必须在 html 和 css 文件中实现按钮或更好地设置按钮的样式(如果没有链接,则为内联)。
猜你喜欢
  • 2011-03-10
  • 2011-06-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-01-05
相关资源
最近更新 更多