Как искать в браузере с пользовательской клавиатурой?

Недавно я разработал приложение. Теперь я хочу интегрировать Google и Youtube в это приложение, как в этом приложении. После долгих поисков, наконец, я думаю, что есть два метода, с помощью которых мы можем интегрировать Google и YouTube для Customkeyboard.

  1. Первый подход (который является совершенным решением, но выглядит крайне сложно) заключается в том, что если мы откроем URL-адрес Google в Webview, а затем вот метод, который показывает customkeyboard, когда мы нажимаем в Google SearchBar.Beacuse, когда мы использовали customkeyboard в приложении, тогда мы вызываем его через (textView.inputView =Customkeyboard;) Но для Google Searchbar, как использовать этот метод, выглядит сложной задачей, если кто-нибудь подскажет мне об этом методе, я буду очень признателен.

  2. Второй подход, который не идеален, но выглядит хорошо, заключается в том, что если мы введем текст в UITextField и UITextView с помощью пользовательской клавиатуры, то добавим этот текст в URL-адрес поиска Google, как я это сделал для клавиатуры по умолчанию`

      -(IBAction)openBrowser {
       NSString *parameter = @"NewYork";
       NSString *url = @"https://www.google.com/search?q=";
       NSString *searchingurl = [NSString stringWithFormat:@"%@%@", url, parameter];
       UIApplication *app = [UIApplication sharedApplication];
       [app openURL:[NSURL URLWithString:searchingurl]];
       }
    

    Вышеуказанный URL открывает желаемую страницу для меня. Поэтому, используя этот подход, я попробовал его для пользовательской клавиатуры, как показано ниже.

    -(void)openBrowser {
     NSString *parameter = @"انڈیا";
     NSString *url = @"https://www.google.com.pk/search?hl=ur&tbo=d&noj=1&q=";
     NSString *searchingurl = [NSString stringWithFormat:@"%@%@", url, parameter];
     NSLog(@"searchingurl result:%@",searchingurl);
     UIApplication *app = [UIApplication sharedApplication];
     [app openURL:[NSURL URLWithString:searchingurl]];
     }
    

    Но на этот раз он не открывает нужную страницу, потому что Google напрямую не может распознать слово "Пользовательская клавиатура" (انڈیا), теперь после этого, когда я объединяю весь URL (https://www.google.com.pk/search?hl=ur&tbo=d&noj=1&q=انڈیا) и откройте его в браузере моего компьютера, и я получу результат (https://www.google.com.pk/search?hl=ur&tbo=d&noj=1&site=webhp&source=hp&q=%D8%A7%D9%86% 88% ДА% Д.Б.%8C%D8% А7& OQ =% D8% A7% D9% 86% 88% DA &gs_l=hp.1.0.0l10.10727.35473.0.37372.5.4.1.0.0.0.304.1162.2-3j1.4.0...0.0...1c.3j4j1.PBbmxkMVaqc) Теперь в этом URL слова (انڈیا) исчезают, и браузер переводит его в какой-то тип кода. Наконец, когда я использовал код ниже

    -(void)openBrowser {
    // NSString *parameter = @"انڈیا";
     NSString *searchingurl = @"https://www.google.com.pk/search?hl=ur&tbo=d&noj=1&site=webhp&source=hp&q=%D8%A7%D9%86%DA%88%DB%8C%D8%A7&oq=%D8%A7%D9%86%DA%88&gs_l=hp.1.0.0l10.10727.35473.0.37372.5.4.1.0.0.0.304.1162.2-3j1.4.0...0.0...1c.3j4j1.PBbmxkMVaqc";
     //NSString *searchingurl = [NSString stringWithFormat:@"%@%@", url, parameter];
     NSLog(@"searchingurl result:%@",searchingurl);
     UIApplication *app = [UIApplication sharedApplication];
     [app openURL:[NSURL URLWithString:searchingurl]];
     }
    

    Он отлично работает в iphone и откройте нужную страницу. Теперь я хочу, чтобы, если бы я использовал этот Второй подход, некоторые могли бы подсказать мне, как мы можем напрямую открыть URL после добавления пользовательского текста клавиатуры, такого как этот URL (https://www.google.com.pk / search? hl = ur & tbo = d & noj = 1 & q = انڈیا) или существует какой-то метод, с помощью которого мы можем преобразовать этот URL-адрес в Coding в приложении в этом формате https://www.google.com.pk/search?hl=ur&tbo=d&noj=1&site=webhp&source=hp&q=%D8%A7%D9%86%DA%88%DB%8C%D8%A7&oq=%D8%A7%D9%86%DA%88&gs_l=hp.1.0.0l10.10727.35473.0.37372.5.4.1.0.0.0.304.1162.2-3j1.4.0...0.0...1c.3j4j1.PBbmxkMVaqc) и затем откройте этот URL в Google. Любая помощь или предложение будут высоко оценены Appriated.thanks заблаговременно.

1 ответ

Решение

Браузер кодирует انڈیا с UTF8, тогда это%D8%A7%D9%86%DA%88%DB%8C%D8%A7.

Попробуй это:

        NSString *parameter = @"انڈیا";  
        NSString *url = @"https://www.google.com.pk/search?hl=ur&tbo=d&noj=1&q=";
        NSString *searchingurl = [NSString stringWithFormat:@"%@%@", url, parameter];
        NSString *encodedSearchingurl = [searchingurl stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];
        NSLog(@"searchingurl result:%@",encodedSearchingurl);
        UIApplication *app = [UIApplication sharedApplication];
        [app openURL:[NSURL URLWithString:encodedSearchingurl]];
Другие вопросы по тегам