অ্যাপ্লিকেশন (… ব্যবহারকারীর ক্রিয়াকলাপ চালিয়ে যান…) পদ্ধতিটি আইওএস 13 তে কল করা হয়নি


11

হাই আমি ইউনিভার্সাললিঙ্ক ব্যবহার করে আইওএস অ্যাপ তৈরি করছি।

ইউনিভার্সাল লিঙ্কটি দুর্দান্ত কাজ করে তবে কলব্যাক পদ্ধতিটি কল করা হয় না।

আমার AppDelegate.swift নীচে।

import UIKit

@UIApplicationMain
class AppDelegate: UIResponder, UIApplicationDelegate {

    var window: UIWindow?


    func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {
        // Override point for customization after application launch.
        return true
    }


    func application(_ application: UIApplication,
                     willFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey : Any]? = nil) -> Bool {
        return true
    }

    // this method not called!!
    func application(_ application: UIApplication, continue userActivity: NSUserActivity, restorationHandler: @escaping ([UIUserActivityRestoring]?) -> Void) -> Bool {
        print("called")
        return true
    }
}

পদ্ধতিটি আইওএস 12 সিমুলেটারে ডাকা হয়।

সুতরাং, সমস্যাটি কেবল আইওএস 13 এ ঘটে।

কেবল iOS13 এ এই ত্রুটিটি কনসোলে মুদ্রিত হয়েছে।

ব্যাকগ্রাউন্ড টাস্কটি শেষ করা যায় না: সনাক্তকারী 1 (0x1) সহ কোনও পটভূমি টাস্ক উপস্থিত নেই বা এটি ইতিমধ্যে শেষ হয়ে গেছে। ডিবাগ করতে ইউআইএপ্লিকেশনএন্ডব্যাকগ্রাউন্ড টাস্কেরর () এ ব্রেক করুন।

সুতরাং, এটি সমস্যার কারণ হতে পারে।

আমি সত্যিই কাউকে সাহায্য করার জন্য প্রশংসা করব


3
আমারও একই সমস্যা আছে
এমেরে

2
এই সমস্যা সম্পর্কে কোন আপডেট?
jfredsilva

1
কেউ কি এই সমস্যার সমাধান খুঁজে পেয়েছেন?
জানুয়ারি

@ EmreÖnder আমি একটি সমাধান খুঁজে পেয়েছি (উত্তর দেখুন)। আশা করি এটি আপনার একই সমস্যা ছিল
জানুয়ারি

@ jfredsilva আমি একটি সমাধান খুঁজে পেয়েছি (উত্তর চেক করুন)। আশা করি এটি আপনার একই সমস্যা ছিল
জানুয়ারি

উত্তর:


10

আমার ক্ষেত্রে, আমি এক্সকোড 11 এ একটি ব্র্যান্ড নিউ প্রজেক্ট শুরু করেছি যা SceneDelegateপাশাপাশি ব্যবহার করেAppDelegate

দেখে মনে হচ্ছে ইউনিভার্সাললিঙ্কস (এবং সম্ভবত বেশ কয়েকটি অন্যান্য এপিআই) এই কলব্যাকটি এতে ব্যবহার করে SceneDelegate:

func scene(_ scene: UIScene, continue userActivity: NSUserActivity) { }

এতে এই কলব্যাকের পরিবর্তে AppDelegate:

func application(_ application: UIApplication, continue userActivity: NSUserActivity, restorationHandler: @escaping ([UIUserActivityRestoring]?) -> Void) -> Bool { }

একবার আমি বাস্তবায়নের পরে SceneDelegateসমস্ত কিছুতে প্রত্যাশা অনুযায়ী কাজ শুরু করি। আমি এটি চেষ্টা করি নি, তবে আমি ধরে নিচ্ছি যে আপনি যদি আইওএস 12 এবং নীচে টার্গেট করে থাকেন তবে আপনার দুটি পদ্ধতি প্রয়োগ করার প্রয়োজন হতে পারে।

আশাকরি এটা সাহায্য করবে


এটাও জাগ্রত নয়। অ্যাপল আইওএস 13 এ বিষয়টি নিশ্চিত করেছে, অবশ্যই, তারা এটি ঠিক করতে যাচ্ছে না।
দিমিত্রি


2
আশ্চর্যজনক, আমি মজাদার দৃশ্যের চিত্র রেখেছি (_ দৃশ্য: ইউআইসিসিন, ব্যবহারকারীর ক্রিয়াকলাপ: এনএসউসারঅ্যাক্টিভিটি) S S সিনডিজিয়েটে এবং এটি এখন @ জ্যান, নিখরচায় কাজ করছে, অ্যাপডেলিগেট এবং সিনডিজিলেটে কোড নকলের এই পরিস্থিতি আমরা কীভাবে এড়াতে পারি? ধন্যবাদ
জিগার

@ জিগার আমি ভাবছি না আপনি এখনই অ্যাপডেলিগেটে কোডও প্রয়োজন
জানুয়ারী

@ জান আমি সিনডেলিগেট সরিয়েছি, এরপরে এটি ঠিকঠাক কাজ করছে।
জিগার

3

আমার একই জাতীয় সমস্যা ছিল SceneDelegateএবং সার্বজনীন লিঙ্কগুলি যেখানে আমি অ্যাপ্লিকেশনটি চালু করার সময় এনএসইউসারএকটিভিটিতে যেতে পারিনি (এই ক্ষেত্রে আইওএস 13 এ ব্যাকগ্রাউন্ড এনএফসি রিডিং)।

হিসাবে @Jan দ্বারা উত্তর উল্লেখ করা হয়েছে, অবিরত userActivity এখন SceneDelegate

অ্যাপটি চলমান থাকলে বা ব্যাকগ্রাউন্ডে থাকলে। বন্ধ, একটি সর্বজনীন লিঙ্ক scene(_:continue:)প্রতিনিধিকে বরখাস্ত করবে।

যদি অ্যাপটি ব্যাকগ্রাউন্ডে না থাকে তবে একটি সর্বজনীন লিঙ্কটি scene(_:continue:)ডেলিগেটের কাছ থেকে শুরু হবে না । পরিবর্তে, NSUserActivityথেকে পাওয়া যাবে scene(_:willConnectTo:options:)। যেমন।

func scene(_ scene: UIScene, willConnectTo session: UISceneSession, options connectionOptions: UIScene.ConnectionOptions) {
    if let userActivity = connectionOptions.userActivities.first {
        debugPrint("got user activity")
    }
}
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.