1

私は最近アプリケーションを開発しました。今、私はこのアプリケーションのようにこのアプリケーションにグーグルとユーチューブを統合したいと思います。多くの検索を行った後、最終的に私たちはカスタムキーボードのためにグーグルとユーチューブを統合することができる2つの方法があると思います。

  1. 最初のアプローチ(これは完璧な解決策ですが、非常に難しいように見えます)は、Webviewでgoogle urlを開き、Google SearchBarをクリックしたときにcustomkeyboardを表示するメソッドです。アプリケーションでcustomkeyboardを使用した場合は、( textView.inputView = Customkeyboard;)しかし、Google Searchbarの場合、このメソッドの使用方法は難しい作業に見えます。誰かがこのメソッドについて私を案内してくれれば、私は非常に高く評価されます。

  2. 完璧ではありませんが見栄えのする2番目のアプローチは、カスタムキーボードを使用してUITextFieldとUITextViewにテキストを入力すると、デフォルトのキーボードの場合と同じように、このテキストをGoogle検索のURLに追加することです。

      -(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%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ではwords(انڈیا)が消え、ブラウザがそれをある種のコードに翻訳します。

    -(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で正常に動作し、目的のページを開きます。この2番目のアプローチを使用した場合、このURLのようなカスタムキーボードテキストを追加した後、URLを直接開く方法を教えてくれる人がいます(https://www.google .com.pk / search?hl = ur&tbo = d&noj = 1&q =انڈیا)または、この形式のアプリケーション内のコーディングでこのURLを変換できる方法があります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)そしてGoogleでこのURLを開きます。ヘルプや提案は非常に高く評価されます。ありがとうあらかじめ。

4

1 に答える 1

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]];
于 2013-01-09T13:17:15.803 に答える