小编gia*_*ari的帖子

拒绝时显示麦克风权限

我有一个按钮,点击它时我必须检查麦克风权限。

为此,我这样做了:

public func askMicrophoneAuthorization()
    {

        recordingSession = AVAudioSession.sharedInstance()
        recordingSession.requestRecordPermission() { [unowned self] allowed in
                DispatchQueue.main.async {
                    if allowed
                    {
                        self.goToNextStep()

                    } else
                    {
                        self.denied()
                    }
                }
            }
 }
Run Code Online (Sandbox Code Playgroud)

我的问题是这样的:当我点击按钮并调用askMicrophoneAuthorization方法时,如果这是我第一次请求权限,麦克风系统警报(在plist文件中插入文本)会显示,我可以拒绝或不拒绝该权限。如果我拒绝该权限,然后重新点击按钮,方法 self.denied() 就会被执行,并且我看不到麦克风系统警报。是否可以重新显示系统警报?

avfoundation ios swift ios-permissions

5
推荐指数
1
解决办法
3912
查看次数

停止导航 WKWebview

这是我的情况:

我在 WKWebView 中有一个视图控制器。该网络视图以页面“A”开始。在此页面中有一些链接(href),我希望其中一些链接必须在外部浏览器中打开。

为此,我设置了 WKWebView 委托:

func webView(_ webView: WKWebView, decidePolicyFor navigationAction: WKNavigationAction, decisionHandler: @escaping (WKNavigationActionPolicy) -> Void) {

        if let url = webView.url?.absoluteString
        {

                if(self.isExternalURL(url))
                {
                    let urlT = URL(string: url)!
                    decisionHandler(.cancel)
                    UIApplication.shared.open(urlT, options: [:], completionHandler: nil)
                }
                else
                {
                    decisionHandler(.allow)
                }
         }
         else
         {
                decisionHandler(.allow)
         }
}

private func isExternalURL(url:String) -> Bool
{
    //......check link
}
Run Code Online (Sandbox Code Playgroud)

我的问题是,如果我选择外部链接,外部浏览器会打开,但 webview 不会保留在页面 A 上,但它也会加载外部链接,而我希望它保留在页面 A 上。

我不知道为什么

ios swift wkwebview wknavigationdelegate

4
推荐指数
1
解决办法
5878
查看次数