iOS知識整理:用笨方法解決攔截html的點擊事件

  • 背景故事:
    項目中涉及到一個html的頁面.
    wkwebview加載的web頁面.
    需要
    “在web中點擊返回主頁按鈕時,返回到原生主頁,而非web主頁”

2018年一月2號的我還不懂html5和h5與原生的交互.

嘗試了很多方法....首先,html5 網(wǎng)站的代碼是不能改的...javascript也沒有預(yù)留和ios交互的接口...里面的頁面轉(zhuǎn)換也不能用wkwebview的delegate攔截到...

于是想了一個我自己感覺有點笨的方法...

思路是用UITouch來控制webview的點擊事件,每次點擊之后過0.5s(留出頁面轉(zhuǎn)換的事件)去獲取當(dāng)前的url,如果url是web主頁的url就返回到原生主頁..

代碼如下:
先創(chuàng)建一個名為CustomWKWebView的子類,.h文件如下

- (UIView *)hitTest:(CGPoint)point withEvent:(UIEvent *)event {
    
    static UIEvent *e = nil;
    
    if (e != nil && e == event) {
        e = nil;
        return [super hitTest:point withEvent:event];
    }
    
    e = event;
    
    if (event.type == UIEventTypeTouches) {
        NSSet *touches = [event touchesForView:self];
        UITouch *touch = [touches anyObject];
        if (touch.phase == UITouchPhaseBegan) {
            NSLog(@"Touches began");
            NSLog(@"%@",self.URL.absoluteString);
            [self performSelector:@selector(delayMethod)
                       withObject:nil
                       afterDelay:0.5f];
            
        }else if(touch.phase == UITouchPhaseEnded){
            NSLog(@"Touches Ended");
            
        }else if(touch.phase == UITouchPhaseCancelled){
            NSLog(@"Touches Cancelled");
            
        }else if (touch.phase == UITouchPhaseMoved){
            NSLog(@"Touches Moved");
            
        }
    }
    return [super hitTest:point withEvent:event];
}

-(void)delayMethod
{
    NSLog(@"%@",self.URL.absoluteString);
    if ([self.URL.absoluteString isEqualToString:@"主頁的url"]) {
        [[NSNotificationCenter defaultCenter] postNotificationName:@"wkwebview-backtohome" object:nil];
    }

}
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • Android 自定義View的各種姿勢1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 179,013評論 25 709
  • 你撕裂我的思維是疲乏倦怠 你拼湊我的肌腱是毀滅新生 你改變不了那一片耕耘過的腦髓 你欲重塑我的根基 流逝的美麗 迷...
    小洲時間閱讀 210評論 6 2
  • 豆瓣社區(qū) 首頁 我的豆瓣 瀏覽發(fā)現(xiàn) 移動應(yīng)用 游戲 線上活動 臉頰兩側(cè)長痘的原因 huangzhouh5314 2...
    123逍遙游閱讀 196評論 1 0
  • 我想這便是中國學(xué)生的悲哀之處 沒有上課,一次外出作業(yè) 學(xué)生分完組,便頭也不回的各自走了 一路上,我想,如果老師看到...
    呵呵噠噠噠888閱讀 285評論 0 0

友情鏈接更多精彩內(nèi)容