iOS: call obj-c methods using javascript in a UIWebview

前端 未结 3 475
你的背包
你的背包 2021-02-01 11:12

I am writing a function that collaborates with a JS web page. I use UIWebView to contain the webpage and then situation has become complicated when I want the web page to commun

3条回答
  •  抹茶落季
    2021-02-01 11:57

    Yes it does feel hacky and is a little laggy but you need to do it with the UIWebViewDelegate

    function init()
    {
      $('input').on('click', function(e) { answerBoxShouldBeginEditing(e); });
    }
    
    function answerBoxShouldBeginEditing(e)
    {
      var object = e.toElement;
    
      var answer = $(object).attr('name');
      var request = 'engine:' + answer;
    
      var iframe = document.createElement('IFRAME');
      iframe.setAttribute('src', request);
      document.documentElement.appendChild(iframe);
      iframe.parentNode.removeChild(iframe);
      iframe = null;
    }
    
    - (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType
    {
      NSString *requestString = [[request URL] absoluteString];
      if ([requestString hasPrefix:@"engine:"]) {
    
        UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Hello" message:nil delegate:self cancelButtonTitle:@"OK" otherButtonTitles:nil];
        [alert show];
        return NO;
      }
      return YES;
    }
    

提交回复
热议问题