Hiện tại, OnShouldStartLoadWithRequest chỉ được hỗ trợ trên iOS. A PR to add support for this on Android đã bị đóng. Nếu một WebView trên Android cố mở một lược đồ URL tùy chỉnh, the app will crash - điều này cũng làm cho ứng dụng của tôi gặp sự cố.Ngăn WebView tải URL trong Android (React Native)
Ứng dụng tôi đang thực hiện cần chặn WebView đang cố gắng mở lược đồ URL tùy chỉnh và hủy nó trước khi mở URL đó (trên iOS, trả lại false
trên OnShouldStartLoadWithRequest
là cách tuyệt vời để làm điều đó).
Cách tốt nhất để làm điều này trên Android là gì?
Tôi muốn mã này để làm việc:
<WebView
ref={WEBVIEW_REF}
source={{uri: INITIAL_URI}}
onShouldStartLoadWithRequest={this.onShouldStartLoadWithRequest}
style={{width, height: height - navBarHeight, backgroundColor: "#fff"}}
/>
onShouldStartLoadWithRequest(navigator) {
if (navigator.url.indexOf(INTERCEPT_URL) === -1) {
return true;
}
return false;
}
Tôi cá nhân okay với khá nhiều bất cứ điều gì mà làm việc - bao gồm sửa đổi ReactWebViewManager.java
bằng tay. Tôi chỉ cần để có được điều này ra khỏi cửa.
Sau khi gọi 'stopLoading()', WebView của tôi không còn xử lý các sự kiện chạm. Nếu người dùng nhấp vào một liên kết và nó sẽ mở ra trong trình duyệt của họ, sau đó họ có thể mở ứng dụng của tôi mà vẫn hiển thị WebView. Nếu họ cố bấm vào một liên kết khác trong WebView đó thì nó sẽ không làm gì cả. Bạn đã gặp phải điều này? – ckeeney