garaster 2013-07-15 07:40 采纳率: 0%
浏览 1201

javascript进行重定向

使用IOS的stringByEvaluatingJavavascriptFromString重定向,整个程序就是我们的移动网站。

代码:

-(IBAction)sendToCart:(id)sender
{
    self.action = @"cart";
    self.addingToList = NO;
    self.selectedIndex = 3;   
    if([self.barCodeArray count] > 0)
    {
        NSString *myUrl = @"http://mycompany'surl/barcodeAddTo.ep?action=cart&barcodes=";

        NSMutableArray *newQuantityArray = [NSMutableArray arrayWithCapacity:self.arrayIndex];

        for(NSInteger i = 0; i <= self.arrayIndex; i++)
        {
            if ([self.quantityArray objectAtIndex:i] != NULL)
            {
                [newQuantityArray addObject:[self.quantityArray objectAtIndex:i]];
            }
        }

        NSDictionary *barCodeAndQuantityData = [NSDictionary dictionaryWithObjectsAndKeys: self.barCodeArray, @"barcodes", newQuantityArray, @"qty", nil];
        NSData* jsonData = [NSJSONSerialization dataWithJSONObject:barCodeAndQuantityData options:kNilOptions error:nil];
        NSString *myDictionaryString = [[NSString alloc] initWithData:jsonData encoding:NSUTF8StringEncoding];
        myUrl = [myUrl stringByAppendingString:myDictionaryString];
        NSString *newUrl = [myUrl stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];
        [self.webView stringByEvaluatingJavaScriptFromString:@"jq('body').append('<a id=\"submitToCart\"></a>\');"];
        [self.webView stringByEvaluatingJavaScriptFromString:[NSString stringWithFormat:@"jq('#submitToCart').on('click', function(){window.location.href = %@});", newUrl ]];
        [self.webView stringByEvaluatingJavaScriptFromString:@"jq('#submitToCart').trigger('click');"];
        NSLog(@"Your encoded url looks like %@", newUrl);
        /*
        NSURL *url = [[NSURL alloc] initWithString:[myUrl stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding]];
        NSLog(@"Your url looks like %@", url);
        NSMutableURLRequest *request = [[NSMutableURLRequest alloc] init];
        [request setURL:url];
        [request setHTTPMethod:@"POST"];
        [request setValue:@"application/json" forHTTPHeaderField:@"Content-Type"];
        [request setValue:@"application/json" forHTTPHeaderField:@"Accept"];
        //NSLog(@"Your request looks like %@", request);
        NSURLConnection *connection = [[NSURLConnection alloc] initWithRequest:request delegate:self];
        [connection start];
         */
        [self hideScanViewElementsShowWebView];
    }
    else
    {
        UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"No Bar Codes Scanned" message:@"You haven't scanned any bar codes" delegate:nil cancelButtonTitle:@"OK"  otherButtonTitles:nil, nil];
        [alert show];
        alert = nil;
    }
 }

下面这三行代码是我需要实现的,能实现吗?

[self.webView stringByEvaluatingJavaScriptFromString:@"jq('body').append('<a id=\"submitToCart\"></a>\');"];
[self.webView stringByEvaluatingJavaScriptFromString:[NSString stringWithFormat:@"jq('#submitToCart').on('click', function(){window.location.href = %@});", newUrl ]];
[self.webView stringByEvaluatingJavaScriptFromString:@"jq('#submitToCart').trigger('click');"];
  • 写回答

1条回答 默认 最新

  • ChatGPTᴼᴾᴱᴺᴬᴵ 2023-01-05 20:17
    关注

    是的,这些代码应该可以工作。


    首先,stringByEvaluatingJavaScriptFromString方法将在Web视图中执行给定的JavaScript字符串。


    第一行的JavaScript将在Web视图中的body元素中添加一个名为“ submitToCart”的a元素。


    第二行的JavaScript将为这个a元素添加一个click事件处理程序,当处理程序被触发时,它将将浏览器的当前URL设置为传递的URL。


    第三行的JavaScript将触发“ submitToCart”a元素的click事件处理程序。


    这些JavaScript代码最终将使浏览器加载传递的URL,从而将浏览器重定向到该URL。

    评论

报告相同问题?

悬赏问题

  • ¥15 HFSS 中的 H 场图与 MATLAB 中绘制的 B1 场 部分对应不上
  • ¥15 如何在scanpy上做差异基因和通路富集?
  • ¥20 关于#硬件工程#的问题,请各位专家解答!
  • ¥15 关于#matlab#的问题:期望的系统闭环传递函数为G(s)=wn^2/s^2+2¢wn+wn^2阻尼系数¢=0.707,使系统具有较小的超调量
  • ¥15 FLUENT如何实现在堆积颗粒的上表面加载高斯热源
  • ¥30 截图中的mathematics程序转换成matlab
  • ¥15 动力学代码报错,维度不匹配
  • ¥15 Power query添加列问题
  • ¥50 Kubernetes&Fission&Eleasticsearch
  • ¥15 報錯:Person is not mapped,如何解決?