8

Tôi có một hoạt động đơn giản tạo ra một WebView để tải nhận xét trên Facebook, ví dụ:Không thể hiển thị nhận xét trên Facebook trên Android WebView qua HTML cục bộ

protected void onCreate(Bundle savedInstanceState) 
    { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 

     WebView myWebView = (WebView) findViewById(R.id.webView); 
     WebSettings webSettings = myWebView.getSettings(); 
     webSettings.setJavaScriptEnabled(true); 
     // myWebView.loadUrl("http://192.168.0.2/facebook.html"); // See 1st image 
     myWebView.loadUrl("file:///android_asset/facebook.html"); // See 2nd image 
    } 

Chỉ cuộc gọi đến tệp html từ xa, nhưng địa phương không hoạt động. Xem những hình ảnh sau đây:

qua tập tin từ xa

via remote file

qua Local file

via local file

Và nội dung của facebook.html

![<!DOCTYPE html> 
<html> 
    <head> 
    <meta name="viewport" content="width=device-width, initial-scale=1.0"> 
    </head> 
    <body> 

<div id="fb-root"></div> 
<script>(function(d, s, id) { 
    var js, fjs = d.getElementsByTagName(s)\[0\]; 
    if (d.getElementById(id)) return; 
    js = d.createElement(s); js.id = id; 
    js.src = "http://connect.facebook.net/en_US/all.js#xfbml=1&appId=xxx"; 
    fjs.parentNode.insertBefore(js, fjs); 
}(document, 'script', 'facebook-jssdk'));</script> 

<div class="fb-comments" data-href="http://example.com" data-width="470" data-num-posts="10"></div> 

    </body> 
</html> 

Trả lời

6

Bạn cần chỉ định URL cơ sở.

myWebView.loadDataWithBaseURL("http://www.example.com", "YOUR_HTML", "text/html", null, null) 

Để thay thế hoàn toàn dòng trên:

BufferedReader reader = new BufferedReader(new FileReader("file:///android_asset/facebook.html")); 
String line; 
String html = ""; 
while((line = reader.readLine()) != null) { 
    html += line; 
} 
reader.close(); 
myWebView.loadDataWithBaseURL("http://www.example.com", html, "text/html", null, null) 
+0

dễ thương, làm thế nào để bạn tìm ra các việc lừa? – Howard

+1

Có lỗi giao diện điều khiển javascript được ghi lại và tôi nhận thấy thông số tên miền trên yêu cầu bị trống. –

+0

Ic, nhưng bảng điều khiển JavaScript mà bạn đã đề cập là gì? – Howard

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