iOSアプリ開発の新機能です。現在、私はアプリとウェブページの間の相互作用を必要とするプロジェクトに取り組んでいます。私は、アプリ内のWebページをロードするためにSafari View Controllerを使用し、Webページの右上隅にある完了ボタンを使用してアプリに戻ることができることは分かっています。しかし、私はボタンの代わりにウェブページのリンクをクリックして、アプリに戻ってみたいです。私はこれのための解決策を見つけることができませんでした。誰も助けることができますか?事前に多くの感謝。Safariビューコントローラー
2
A
答えて
0
これは私にとってはうまくいくものの、wkwebviewです。 https://github.com/liqichao/wkwebview-test
この例ではsfsafariviewですが、uがカスタムURLスキームで簡単に十分にこれを行うことができますwkwebview https://github.com/mattneub/Programming-iOS-Book-Examples/blob/master/bk2ch11p552webkit/ch24p825webview/WebViewController.swift
3
とインナー使用する必要があります。まず、あなたのInfo.plist
にスキームを追加します。今すぐ
<key>CFBundleURLTypes</key>
<array>
<dict>
<key>CFBundleURLName</key>
<string>com.mydomain.MyCallback</string>
<key>CFBundleURLSchemes</key>
<array>
<string>mydomainwebcallback</string>
</array>
</dict>
</array>
、あなたがクリックされた任意のURLからあなたのアプリを開きますメカニズムを持っています。
<a href="mydomainwebcallback://whateverinfo">Return to app</a>
私はここに簡素化するつもりですが、あなたはへの参照が必要になります。この場合、URLは次のようにURLを追加し、あなたのビューコントローラにロードされたウェブページに今すぐmydomainwebcallback://whatever
だろうAppDelegate
のSFSafariViewController
まずAppDelegateで:
import UIKit
import SafariServices
@UIApplicationMain
class AppDelegate: UIResponder, UIApplicationDelegate {
var window: UIWindow?
var safariVC: SFSafariViewController?
func application(application: UIApplication, handleOpenURL url: NSURL) -> Bool {
// Here we dismiss the SFSafariViewController
if let sf = safariVC
{
sf.dismissViewControllerAnimated(true, completion: nil)
}
return true
}
あなたは私が代理人にSFSafariViewController
を保管しております見ることができるように。今、私はVCを示し、私のビューコントローラに:あなたは、リンクを打ったとき
import UIKit
import SafariServices
class ViewController: UIViewController {
@IBAction func showSafariVC(sender: UIButton) {
if let url = NSURL(string: "https://mywebserver/callback.html")
{
let delegate = UIApplication.sharedApplication().delegate as! AppDelegate
delegate.safariVC = SFSafariViewController(URL: url)
presentViewController(delegate.safariVC!, animated: true, completion: nil)
}
}
}
、それはSFSafariViewController
を閉じます。
関連する問題
- 1. ストーリーボードビューアーからビューコントローラーへ
- 2. 初期ビューコントローラーとタブビューコントローラー
- 3. ボタンから外部ビューコントローラーをロードする別のビューコントローラーをクリック
- 4. 1つのビューコントローラーから別のビューコントローラーにデータを渡す3
- 5. ナビゲート前のビューコントローラーに戻る
- 6. ナビゲーションコントローラーからビューコントローラーを削除
- 7. マスタービューコントローラー - >詳細ビューコントローラー通信
- 8. スクロールしない子ビューコントローラー
- 9. タッチ中の現在のビューコントローラー
- 10. iOS:Swift:左右のビューコントローラー間で複数のビューコントローラーを切り替える
- 11. ストーリーボードビューコントローラーをコード化されたビューコントローラー
- 12. ビューコントローラーのトップエレメントの垂直スペースの変更
- 13. タブバーコントローラーのビューコントローラーをプログラムで設定する
- 14. UINavigationController現在のビューコントローラーをスキップする
- 15. 即時のすべてのビューコントローラーのスライディングメニュー
- 16. UIButtonがビューコントローラーで動作しない
- 17. ビューコントローラーからのテーブルビューセルのUISegmentedControlへのアクセス
- 18. iPad - ページビューコントローラー - 次のビューコントローラーを表示
- 19. ビューコントローラーにデータが表示されない
- 20. 次のビューコントローラーにスワイプジェスチャーが発生する
- 21. ビューコントローラーとタブバーコントローラーの切り替え
- 22. 即時オーバーライド他のビューコントローラーのappdelegateメソッド
- 23. アニメーションUINavigationControllerのビューコントローラーの置き換え
- 24. Regex matching background-url not Safari Safari
- 25. Safari/Asp.Net
- 26. Safariネイティブコード
- 27. ビューコントローラーを介してエンティティにデータを追加する
- 28. Swift - 最後に開いたビューコントローラーにデータを戻す
- 29. Xcode 4.3:ビューコントローラーにリンクされたペン先の作成方法
- 30. 異なるビューコントローラーのセルからテキストラベルへのテキストの移動
ありがとうございます。これはすべての詳細を提供します。わたしにはできる。ありがとう。 –
@ShalinaHuあなたのために働く場合、答えを受け入れてください。 –