2016-05-18 21 views
5

Bất cứ ai cũng biết cách thực hiện (nếu có thể) để thực thi JS "bên trong" một WebView trong React Native?Thực thi JavaScript bên trong nguồn WebView

Kịch bản: Tôi có trang đăng nhập từ xa (trang web) này được hiển thị trong WebView của tôi và trang web này có một chuỗi sự kiện diễn ra tương ứng với hoạt động của người dùng. Tất cả các sự kiện đều kích hoạt một cuộc gọi lại, mà WebView phải lắng nghe (không phải là vấn đề).
Trong mỗi cuộc gọi lại có một tham chiếu đến một hàm JavaScript, phải được gọi bên trong WebView (đó là vấn đề!).
Vì vậy, từ ứng dụng React Native, tôi cần gọi hàm JavaScript này, được đặt trên trang web (nguồn) được tải trong WebView của tôi.

Những gì tôi có: Tôi lắng nghe các cuộc gọi lại với onShouldStartLoadWithRequest và thao tác hành vi của WebView với điều này và nó hoạt động tuyệt vời.
Về thực thi JavaScript Tôi đã thử phương pháp getWebViewHandle nhưng điều đó không làm điều đó, ít nhất không phải từ chỗ ngồi của tôi.
Tôi nhìn injectedJavaScript bất động sản cũng vậy, nhưng vấn đề là tôi không biết những gì hoạt Javascript để thực thi trước khi callbacks được sa thải.

Bất cứ ai cũng biết làm thế nào để giải quyết này?

Trả lời

4

Gọi phương pháp javascript bên trong một WebView là có thể với iOS và Android thành phần có nguồn gốc. Nhưng API bắt buộc để thực thi javascript hiện không được cung cấp bởi phản ứng gốc. Bạn có thể xem cuộc thảo luận trong this github issue.

Tuy nhiên, có một 3rd party module đó là cung cấp thông tin liên lạc hai chiều giữa ứng dụng của bạn và một webview. Bạn có thể bắt đầu sử dụng nó sau khi tích hợp một số mã gốc vào dự án của bạn.

Các vấn đề liên quan