加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

iphone – 在uiwebview中的JavaScript事件处理程序

发布时间:2020-12-15 01:40:21 所属栏目:百科 来源:网络整理
导读:我在iPhone应用程序中显示一个UIWebView.在UIWebView中,我正在显示还有JavaScript的HTML页面.当HTML页面中单击一个按钮时,我想调用X代码的方法. 我该怎么做 谢谢 解决方法 如果我正确的理解你的问题,你想从UIWebView中的javascript onClick事件处理程序调用O
我在iPhone应用程序中显示一个UIWebView.在UIWebView中,我正在显示还有JavaScript的HTML页面.当HTML页面中单击一个按钮时,我想调用X代码的方法.

我该怎么做
谢谢

解决方法

如果我正确的理解你的问题,你想从UIWebView中的javascript onClick事件处理程序调用Objective C方法.这样做的方法是将浏览器重定向到您的JavaScript代码中的自定义方案的URL,如下所示:

function buttonClicked() {
    window.location.href = "yourapp://buttonClicked";
}

回到Objective C,声明您的视图控制器符合UIWebViewDelegate协议,

@interface DTWebViewController : DTViewController <UIWebViewDelegate> {
...

将您的控制器设置为Web视图的代理,

- (void)viewDidLoad {
    [super viewDidLoad];
    self.webView.delegate = self;
}

并在加载之前拦截URL,如下所示:

- (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType {
    if ([[request.URL scheme] isEqual:@"yourapp"]) {
        if ([[request.URL host] isEqual:@"buttonClicked"]) {
            [self callYourMethodHere];
        }
        return NO; // Tells the webView not to load the URL
    }
    else {
        return YES; // Tells the webView to go ahead and load the URL
    }
}

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读