[英]flutter plugin development and iOS native code: avoid permission request on app launch?
大家好,提前感謝您的時間和奉獻精神。
我正在開發一個需要訪問麥克風的 flutter 插件。 我已經能夠這樣做,但是當我測試插件(使用示例或使用新的或現有的應用程序)時,我遇到了有關麥克風權限的以下問題:
插件本身不請求權限。 這是更大發展的一部分,其想法是該應用程序將在類似屏幕的向導上請求權限。 插件的作用是檢查是否授予了授予者權限(在本例中為麥克風)
在這種情況下,在真實設備上運行應用程序(總是在調試上下文中)將自動崩潰。 在這一點上,我沒有調用任何可能嘗試使用麥克風的方法。 事實上,如果我使用新應用程序只是添加依賴項而不導入任何內容,則會導致崩潰:
此應用程序已崩潰,因為它試圖在沒有使用說明的情況下訪問隱私敏感數據。 應用程序的 Info.plist 必須包含一個 NSMicrophoneUsageDescription 鍵和一個字符串值,向用戶解釋應用程序如何使用這些數據。
這修復了崩潰,但也會導致應用程序在啟動后立即請求麥克風權限。 這很好,但它與向導屏幕的要求相沖突。
由於我不是 Flutter 插件開發方面的專家,因此這可能是正常流程,但我會覺得這很奇怪。 如果是這種情況,有沒有辦法避免應用程序請求權限,以便我可以按需進行?
再次感謝
我被要求顯示代碼,但只是將庫添加為依賴項會觸發此操作。
這可能是調試的事情嗎?
問題是插件根目錄上的 singleton 模式初始化 iOS 本機代碼。 謝謝大家
我發現了問題所在:代碼使用 singleton 作為入口點,並且正在實例化 AudioEngine。 我對這個不好。 感謝大家。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.