जब मैं गूगल खोज कर रहा हूँ पर पुन: निर्देशित और उदाहरण के लिए Etsy.com पर क्लिक करने के WKWebView मुझे अपने iPhone पर स्थापित Etsy एप्लिकेशन ले जाते हैं। मैं इस व्यवहार को कैसे अक्षम कर सकता हूं? मैं WKWebView को etsy.com मोबाइल वेबसाइट पर रीडायरेक्ट करना चाहता हूं। मैं तेजी से उपयोग कर रहा हूँ।अक्षम WKWebView मेरे iPhone पर इंस्टॉल किए गए एप्लिकेशन
उत्तर
मैं Etsy एप्लिकेशन इंस्टॉल और पुष्टि की है कि खोज "Etsy" सफारी में और पहला परिणाम (etsy.com) दोहन Etsy एप्लिकेशन का शुभारंभ करेंगे है।
मैं Xcode में एक परीक्षण "एकल दृश्य आवेदन" बनाया है और बस ViewController
के viewDidLoad के लिए नीचे लाइनों कहा: Etsy के लिए खोज और पहला परिणाम यह मेरे Etsy पर ले जाता है पर क्लिक करने के बाद
override func viewDidLoad() {
super.viewDidLoad()
let webView = WKWebView(frame:view.bounds, configuration: WKWebViewConfiguration())
view.addSubview(webView)
webView.loadRequest(NSURLRequest(URL: NSURL(string: "https://www.google.com")!))
}
। मेरे टेस्ट ऐप में कॉम (एटीसी ऐप पर कूद नहीं है)।
आप अपने कोड में कुछ और कि WKWebView रीडायरेक्ट अनुमति देने के लिए कारण हो सकता है क्या किया है?
दुर्भाग्य से, WKWebView
स्वचालित रूप से संभाल करने के लिए आपके एप्लिकेशन पर वापस कस्टम योजनाओं के साथ यूआरएल नहीं भेजता है।
आप विशेष हैंडलिंग के बिना इस कोशिश है तो उसके बाद उपयोगकर्ता तीसरे पक्ष सेवा के साथ प्रमाणित करता है और अपने कॉलबैक प्राप्त नहीं करेंगे अपने वेब दृश्य लटका की तरह दिखाई देगा। आप मानक http या https योजना के साथ एक रीडायरेक्ट यूआरआई का उपयोग कर की कोशिश कर सकते हैं, लेकिन फिर WKWebView
बस इसे लोड करने के लिए है, न कि संभाल करने के लिए अपनी मूल अनुप्रयोग के लिए वेब दृश्य से बाहर यह निर्देशन से कोशिश करेंगे।
func webView(webView: WKWebView, decidePolicyForNavigationAction navigationAction: WKNavigationAction, decisionHandler: ((WKNavigationActionPolicy) -> Void)) {
print("webView:\(webView) decidePolicyForNavigationAction:\(navigationAction) decisionHandler:\(decisionHandler)")
let app = UIApplication.sharedApplication()
let url = navigationAction.request.URL
let myScheme: NSString = "https"
if (url!.scheme == myScheme) && app.canOpenURL(url!) {
print("redirect detected..")
// intercepting redirect, do whatever you want
app.openURL(url!) // open the original url
decisionHandler(.Cancel)
return
}
decisionHandler(.Allow)
}
आप पा सकते हैं:
आदेश रीडायरेक्ट संभाल करने में, आप अपने WKWebView
की WebPolicyDelegate
में decidePolicyForNavigationAction
लागू करने के लिए कस्टम यूआरएल योजना का पता लगाने और अपने अनुप्रयोग को यह निर्देशित करने के लिए नियंत्रित किया जा करने की जरूरत है विस्तृत जानकारी here
यह आईओएस 9-10 पर काम नहीं करता है ... जब मैं कस्टम स्कीम यूआरएल पर क्लिक करता हूं, तो तय करें पॉलिसीफॉरनविगेशन एक्शन कभी नहीं कहा जाता है। – Borzh
सामान्य परिस्थितियों WKWebView एक 3 पार्टी ऐप्लिकेशन को खोलकर नहीं किया जाना चाहिए के बजाय वेब साइट के लिए जा रहा तहत - लेकिन मैं 2 अपवाद
के बारे में पता- आप स्पष्ट रूप से 3 पार्टी अनुप्रयोग
- आईओएस बहुत सही काम नहीं कर रहा (ठीक करने के लिए उपकरण पुन: प्रारंभ) खोलने के लिए एक
WKNavigationDelegate
हैंडलर में कुछ कोड डाला है - वहाँ एक बग है, जो कभी-कभी हो रहा है आपके द्वारा वर्णित व्यवहार (आईओएस 10.2 में देखा गया) बनाता है
- 1. मेरे iphone
- 2. की गणना ओएस एक्स पर सभी इंस्टॉल किए गए एप्लिकेशन
- 3. सभी इंस्टॉल किए गए फोंट
- 4. इंस्टॉल किए गए मणि स्रोत
- 5. पिन किए गए एप्लिकेशन
- 6. आईफोन सिम्युलेटर इंस्टॉल किए गए एप्लिकेशन कहां स्टोर करता है?
- 7. Google क्रोम उपकरण अक्षम किए गए
- 8. Django इंस्टॉल किए गए ऐप्स स्थान
- 9. मेरे क्रैश किए गए प्रोग्राम
- 10. एंड्रॉइड - इंस्टॉल किए गए ऐप्स - अखंडता जांच
- 11. मल्टीथ्रेड किए गए एप्लिकेशन (विनिर्देश)
- 12. iTunes कनेक्ट मेरे अपलोड किए गए आईपीए
- 13. एंड्रॉइड पर एप्लिकेशन इंस्टॉल की गई तारीख
- 14. iPhone विकास: UIWebView पर चयनित/हाइलाइट किए गए पाठ किए जा रहे हैं
- 15. WKWebView
- 16. मेरे वीपीसी कॉन्फ़िगर किए गए लैम्ब्डा फ़ंक्शन
- 17. जीनोम इंस्टॉल किए बिना जीनोम पसंदीदा एप्लिकेशन बदलें?
- 18. मेरे असाइन किए गए PLINQ क्वेरी को मेरे अनियंत्रित एक
- 19. डाटाबेस इसलिए इंस्टॉल किए गए एप्लिकेशन प्रकाशित करने के दौरान कॉपी नहीं फ़ाइल अपवाद
- 20. वीडियो अनुकूलता मुद्दा: एंड्रॉयड रिकॉर्ड किए गए वीडियो iphone
- 21. iPhone सफारी वेब एप्लिकेशन: iPhone विशिष्ट सुविधाओं
- 22. अपलोड किए गए वीडियो बेल एप्लिकेशन
- 23. लॉन्च iPhone एप्लिकेशन ईमेल
- 24. iPhone एप्लिकेशन सिम्युलेटर, डिवाइस
- 25. GetServerAuthCodeResult क्यों अस्वीकृत है? मैं इंस्टॉल किए गए एप्लिकेशन में कुछ समतुल्य कैसे कर सकता हूं?
- 26. iPhone एप्लिकेशन आकार सीमा
- 27. एन्कोडिंग JSON iPhone एप्लिकेशन
- 28. इंस्टॉल किए गए ऐप्स की सूची को वर्णित करें
- 29. WKWebView
- 30. इंस्टॉल किए गए पैकेज क्यों पैकेज स्थापित नहीं करते हैं?
आप 'WKNavigationDelegate' में लिंक को अवरुद्ध करने और वेबसाइट को स्वयं दिखाने का प्रयास कर सकते हैं। –
क्या आप और अधिक समझा सकते हैं? – gal
ज़रूर। यदि आप 'WKNavigationDelegate' को लागू करते हैं, तो विधि 'webView (_ webView: WKWebView, decololForNavigationAction NavationAction: WKNavigationAction, निर्णय हैंडलर निर्णय हैंडलर: (WKNavigationActionPolicy) -> शून्य) जब भी कोई लिंक क्लिक किया जाता है तो उसे कॉल किया जाना चाहिए। यह सुनिश्चित करने के लिए 'navigationAction.request.URL' प्रॉपर्टी देखें कि यह एटीसी नहीं है, उदाहरण के लिए; यदि ऐसा है, तो निर्णय लेंडलर का उपयोग करके नेविगेशन को रद्द करें और 'loadRequest() 'का उपयोग करके स्वयं वेबसाइट पर जाएं। उम्मीद है कि यह डीप लिंकिंग को रोक देगा। –