簡體   English   中英

無法在Facebook和Twitter上共享Web內容-WebKit iOS Swift

[英]Sharing web content on Facebook and Twitter not working - WebKit iOS Swift

在將網頁加載到WebKit的基礎上,我無法將應用程序的Web內容共享到Facebook和Twitter。 在網頁中,我有5個按鈕:Facebook,Twitter,WhatsApp,Viber和SMS。 除Facebook和Twitter以外的所有按鈕都可以正常工作。 當用戶單擊WhatsApp,Viber和SMS時,將調用方法“ decidePolicyFor”,我可以決定將要發生的情況。 單擊Facebook和Twitter按鈕不會執行任何操作。 沒有結果,也沒有錯誤。

我也嘗試將新的QueriesSchemes實施到info.plist文件中,但沒有結果。

<key>LSApplicationQueriesSchemes</key>
<array>
    <string>twitter</string>
    <string>fb</string>
    <string>sms</string>
    <string>viber</string>
    <string>whatsapp</string>
</array>



func webView(_ webView: WKWebView, decidePolicyFor navigationAction: WKNavigationAction, decisionHandler: @escaping (WKNavigationActionPolicy) -> Void) {
    if navigationAction.navigationType == .linkActivated  {
        print("user click")
        if let newURL = navigationAction.request.url,
            let host = newURL.host , !host.hasPrefix("-mywebsite-") && UIApplication.shared.canOpenURL(newURL) && UIApplication.shared.openURL(newURL) {
            print(newURL)
            print("Redirected to browser. No need to open it locally")
            decisionHandler(.cancel)
        } else {
            print("Open it locally")
            let url = navigationAction.request.url?.absoluteString
            let url_elements = url!.components(separatedBy: ":")

            if url_elements[0] == "sms" {
                print("sms")
                openCustomApp(urlScheme: "sms://", additional_info: url_elements[1])
                decisionHandler(.cancel)
            } else if url_elements[0] == "whatsapp"{
                print("whatsapp")
                openCustomApp(urlScheme: "whatsapp://", additional_info: url_elements[1])
                decisionHandler(.cancel)
            } else if url_elements[0] == "viber"{
                print("viber")
                openCustomApp(urlScheme: "viber://", additional_info: url_elements[1])
                decisionHandler(.cancel)
            } else {
                print("unknown")
                decisionHandler(.allow)
            }
        }
    } else {
        print("not a user click")
        decisionHandler(.allow)
    }
}

在此處輸入圖片說明

試試這個,它工作正常。

 func webView(_ webView: WKWebView, createWebViewWith configuration:
 WKWebViewConfiguration, for navigationAction: WKNavigationAction,
 windowFeatures: WKWindowFeatures) -> WKWebView? {
        NSLog("Test method call from another class", "")
         if (navigationAction.targetFrame == nil) {
             if #available(iOS 10.0, *) {
                 UIApplication.shared.open(navigationAction.request.url!, options: [:],
 completionHandler: nil)
            } else {
                 UIApplication.shared.openURL(navigationAction.request.url!)
             }
             return nil
         }
         return nil;

     }

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM