سؤال

هل هناك أي طريقة لإخراج وكيل المستخدم على Safari على iPhone؟

لذلك على سبيل المثال، ستقوم بإنشاء تطبيق على iPhone الذي يحتوي على متصفح Safari المضمن، ولكن أي موقع ويب زيارات المستخدم مع هذا المتصفح لن يعرف أنك على Safari على iPhone، فإنه يعتقد أنك على شيء مثل Safari جهاز كمبيوتر، أو حتى IE / Firefox.

شكرا

هل كانت مفيدة؟

المحلول

نعم أعتقد أنك تستطيع تغيير هذا. سيتطلب ذلك من العمل قليلا للحصول عليه.

  1. ستحتاج إلى إدارة جميع الطلبات يدويا. عن طريق تقديم طلبات البيانات الخاصة بك. في طلب البيانات هذا، يمكنك إضافة ملف httpheader لعامل المستخدم الذي ستجاوز الرؤوس الافتراضية.

    NSMutableUrlRequest * UrlRequest = [[[nsmutableurlrequest alloc] initwithurl: Autorelease]؛

    [urlRequest setHTTPMethod: @"POST"];
    [urlRequest setHTTPBody: [nvpString  dataUsingEncoding:NSUTF8StringEncoding]];
    [urlRequest addValue:@"Your+User+Agent+String" forHTTPHeaderField:@"User-Agent"];
    receivedData = [[NSMutableData alloc] retain];
    [receivedData setLength:0];
    
    [NSURLConnection connectionWithRequest: urlRequest delegate: self];
    
  2. إذا قمت بتضمين متصفح الويب Safari في تطبيقك، فيمكنك الاشتراك في أساليب مفوضها. سيقوم أحدهم بإخطار تطبيقك أن Safari ترغب في تحميل عنوان URL، وهذا هو المكان الذي تقوم بهذا الحمل واحصل على البيانات بنفسك.

    - (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType{
    

    الآن يمكنك وضع التعليمات البرمجية الخاصة بك هنا للقيام بتحميل البيانات.

  3. بمجرد تحميل البيانات. أعطيه سلسلة البيانات مرة أخرى إلى WebView. لقد قمت بتعيين "Baseurl: Nil" ولكن قد تضطر إلى ضبط هذا بشكل صحيح على المجال الصحيح لهذا التطبيق.

    webview loadhtmlstring: newstring baseurl: nil

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top