পদ্ধতির 'দৃশ্যের (_: openURLContexts :)' বলা হয় না


9

ইনফো.লিস্ট ফাইলটিতে আমি কনফিগার করেছি URL IdentifierএবংURL Scheme সফলভাবে। এছাড়াও আমি কাস্টম ইউআরএল ব্যবহার করে অ্যাপ খুলতে সক্ষম হয়েছি। সমস্যাটি যখন অ্যাপটি প্রথমবারের মতো পদ্ধতিটি চালু করে

func scene(_ scene: UIScene, openURLContexts URLContexts: Set<UIOpenURLContext>) does not call.

উপরের পদ্ধতির উপর ভিত্তি করে আমার কিছু নির্ভরশীল কার্যকারিতা রয়েছে। সুতরাং যখন অ্যাপটি প্রথমবার চালু হয় তখন আমি আমার অ্যাপটিতে কিছু দেখতে পাচ্ছি না।

এছাড়াও আমি পদ্ধতিতে কোড যুক্ত

func scene(_ scene: UIScene, willConnectTo session: UISceneSession, options connectionOptions: UIScene.ConnectionOptions) {

        guard let _ = (scene as? UIWindowScene) else { return }

        let url = connectionOptions.urlContexts.first?.url

    }

কিন্তু আমি এখানে শূন্য হিসাবে url পেতে।

তবে আমার অ্যাপটি যদি ব্যাকগ্রাউন্ড মোডে থাকে এবং আমি ইউআরএল হিট করি তবে উপরের পদ্ধতিটি সফলভাবে কল করে এবং নির্ভরশীল কার্যকারিতা ভালভাবে কাজ করে। scene(_:openURLContexts:)পদ্ধতিতে আমার কোডটি নিম্নলিখিত sceneDelegate

func scene(_ scene: UIScene, openURLContexts URLContexts: Set<UIOpenURLContext>){
        let url = URLContexts.first?.url
        let urlString: String = url!.absoluteString

        if let urlComponents = URLComponents(string: urlString),let queryItems = urlComponents.queryItems {
            queryParams = queryItems
        } else {
            print("invalid url")
        }

        guard let windowScene = (scene as? UIWindowScene) else { return }


        self.window = UIWindow(windowScene: windowScene)
        //self.window =  UIWindow(frame: UIScreen.main.bounds)

        let storyboard = UIStoryboard(name: "Main", bundle: nil)
        guard let rootVC = storyboard.instantiateViewController(identifier: "LocationViewIdentifier") as? UIViewController else {
            print("ViewController not found")
            return
        }
        let rootNC = UINavigationController(rootViewController: rootVC)
        self.window?.rootViewController = rootNC
        self.window?.makeKeyAndVisible()
    }

কেউ কি আমাকে বলতে পারবেন যে প্রথমবারের মতো পদ্ধতিটি কেন কল করে না?


এই প্রশ্নের বর্তমান অবস্থা কি? উত্তরগুলির মধ্যে একটি কি আপনার সমস্যা সমাধান করেছে? যদি হ্যাঁ, দয়া করে তাদের মধ্যে একটি গ্রহণ করুন। আপনি আরো সাহায্যের প্রয়োজন হয় না? যদি হ্যাঁ, আপনি কীভাবে প্রদত্ত সমাধানগুলি আপনার সমস্যার জন্য সমাধান করেছেন এবং এখনও কী অনুপস্থিত তা ব্যাখ্যা করতে পারেন? আমি আপনাকে এইটির জন্য সাহায্য করতে পেরে খুশি হব
মুলি

উত্তর:


2

সম্ভবত এটি আপনার পরিস্থিতিতে সহায়তা করবে।

ফানক দৃশ্য (_ দৃশ্য: ইউআইসিসিন, উইল কানেক্ট কানেক্ট টু সেশন: ইউআইসিসিনেশন সেশন, অপশন সংযোগঅপশন: ইউআইসিসিন.কনেকশনঅপশন))

    urlinfo = कनेक्शनOptions.urlContexts দিন
    url = urlinfo.first? .url হিসাবে! NSURL

}

ফানক দৃশ্য (_ দৃশ্য: ইউআইসিসিন, ওপেন ইউআরএল কনটেক্সটস ইউআরএল কনটেক্সটস: সেট) {

    url = URLContexts.first! .ll কে NSURL হিসাবে চলুন

}


2

আমার একই সমস্যা scene(_ scene:, continue userActivity:)ছিল এবং অ্যাপটি খোলা থাকলেই কেবল পদ্ধতিটি কল করা হয়েছিল।

আমি যখন connectionOptionsপদ্ধতিটিতে পাসটি পরীক্ষা করেছি তখন scene(_ scene:, willConnectTo session, options connectionOptions:)এটিতে প্রত্যাশিত URL সহ একটি ব্যবহারকারীর কার্যকলাপ ছিল। সুতরাং, আমি নিজেই প্রথম পদ্ধতিটি কল করে শেষ করেছি:

func scene(_ scene: UIScene,
           willConnectTo session: UISceneSession,
           options connectionOptions: UIScene.ConnectionOptions) {

    if let userActivity = connectionOptions.userActivities.first {
        self.scene(scene, continue: userActivity)
    }
}
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.