私はUIWebViewをサブクラス化して、ユーザーが "= Human"のような最後の文字列を追加するすべてのリンクを追加する方法を知りました。ユーザーがYahoo.comに行ってリンクをクリックすると、最後に "= Human"が表示されます。サブクラスUIWebViewですべてのリンクを追加する(Swiftで)
0
A
答えて
0
私はのUIWebView
に
をサブクラス化することができしかしdocsは言う:
WKのWebViewオブジェクトは、このような アプリ内ブラウザ用として、インタラクティブなWebコンテンツを表示します。
新しい開発の場合は、古いクラスUI WebView クラスの代わりにこのクラスを使用します。
これが私の作品:
import UIKit
import WebKit
class WebViewController: UIViewController,
WKNavigationDelegate {
var webView: WKWebView!
override func loadView() {
let webView = WKWebView()
webView.navigationDelegate = self
view = webView
let defaultUrl = NSURL(
string: "https://www.yahoo.com"
)
if let validDefaultUrl = defaultUrl {
let yahooRequest = NSURLRequest(URL: validDefaultUrl)
webView.loadRequest(yahooRequest)
}
}
//MARK: - WKNavigationDelegate methods:
func webView(webView: WKWebView,
decidePolicyForNavigationAction navigationAction: WKNavigationAction,
decisionHandler: (WKNavigationActionPolicy) -> Void)
{
print("[me]: In WKWebView delegate method")
if navigationAction.navigationType == .LinkActivated {
print("[me]: User clicked on a link.")
let request = navigationAction.request
if let url = request.URL,
newURL = NSURL(string: url.absoluteString + "=User")
{
print("[me]: New url is valid.")
print("[me]: New url is \(newURL.absoluteString)")
let newRequest = NSMutableURLRequest(URL: newURL)
decisionHandler(.Cancel)
webView.loadRequest(newRequest)
}
}
decisionHandler(.Allow)
}
}
は編集:実際には、コードがif navigationAction.navigationType == .LinkActivated
ブロックにリンクが何らかの理由でクリックされるたびに入りません。
[私]:WKWebViewのデリゲートメソッド
と私は出力を参照に失敗で:時々私はちょうど出力を参照
を[私]:ユーザーがリンクをクリック。
+0
@LeoDabus、私はiOSの初心者です。私はAppleのドキュメントとBNR IOSブックだけを見てmysellfによってそのコードを一緒に冠しました。なぜそれがうまくいかないのか知りたいのですが。 – 7stud
関連する問題
- 1. SwiftのUIViewにサブクラスを追加する
- 2. UIViewControllerとそのすべてのサブクラスにプロパティを追加する
- 3. UIWebviewでgifビデオファイルを追加
- 4. Xcode 4.3でUIViewControllerサブクラスを追加する
- 5. uiwebviewサブクラスで保持するコピー
- 6. プロトコルなしのすべてのリンクにhttp://を追加する
- 7. ウェブサイトのすべてのリンクにclass = "transition"を追加するスクリプト
- 8. Jquery:すべてのリンクにクエリ文字を追加する
- 9. tapAtPoint on UIWebViewサブクラス
- 10. JavaScriptをUIWebView-Swift 3.0で使用する
- 11. すべてのビューにナビゲーションバーを追加します。 Swift
- 12. "user"で始まるすべてのリンクにイベントを追加しますか?
- 13. すべてのPDFリンクにtarget = "_ blank"を追加します
- 14. ApplicationUserのサブクラスにクレームを追加する
- 15. UIActionSheetにUIWebViewを追加するには?
- 16. UIWebViewにHTMLを追加する
- 17. UIWebViewにUITapGestureRecognizerを追加するには?
- 18. SwiftでCGContextにテキストを追加する
- 19. xcode swift UIWebviewは、https:// mで始まるリンクを無効にします
- 20. ページベースのアプリケーションでUIWebviewに複数のWebページを追加する
- 21. UIWebViewのSafariでリンクを開きます
- 22. リンクでオプションを繰り返して追加するGoogleカレンダーに追加する
- 23. javascriptでデータベースにリンクを追加する
- 24. ストーリーボードにサブクラスを追加する
- 25. 機能を追加する:サブクラスとデコレータ
- 26. loadViewでUIControlサブクラスを追加するとiphoneアプリがクラッシュする
- 27. jqueryを通してすべてのリンクに関数を追加するには?
- 28. SwiftでValueTransformerを追加
- 29. Swiftでストーリーボードを追加
- 30. JS文字列すべてのリンクの末尾に追加
不要です。ナビゲーションタイプをチェックすることができます。 http://stackoverflow.com/a/36436728/2303865 –
@LeoDabusしかし、それはちょうどブールでチェックします。私が呼び出すことができ、私が望むURLを返すことができる方法はありますか? – jordanbana
あなたは達成しようとしていることを示す必要があります。その接尾辞をurlに追加するだけです。absoluteStringはとてもシンプルです –