2011-12-21 32 views
15

Tôi muốn có thể liên kết đến trang web bên trong chế độ xem web trên điện thoại tải trang web bên ngoài vào cùng một chế độ xem web trên điện thoại. Nếu tôi làm điều này, nó tải bên trong webview:Tôi làm cách nào để tải trang web bên trong chế độ xem web trên điện thoại?

public class App extends DroidGap { 
    @Override 
    public void onCreate (Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     super.loadUrl("http://google.com"); 
    } 
} 

Tuy nhiên, tôi muốn có một trang nội tung ra đầu tiên, có một liên kết đến các trang bên ngoài, vì vậy tôi làm điều này:

public class App extends DroidGap { 
    @Override 
    public void onCreate (Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     super.loadUrl("file:///android_asset/www/index.html"); 
    } 
} 

và tôi có một liên kết:

<a href="#" onclick="navigator.app.loadUrl('http://google.com')">Google</a> 

nhưng liên kết này sẽ khởi chạy google bên ngoài ứng dụng, trong trình duyệt web, thay vì trong chế độ xem web trên điện thoại. Tôi có thể làm gì để đảm bảo liên kết đến trang bên ngoài được khởi chạy trong chế độ xem web trên điện thoại của ứng dụng?

+0

Tôi thêm thông tin này ở đâu? – MaxRocket

Trả lời

18

Ahhh .. Tìm thấy câu trả lời trên this question. Tôi phải thêm

<access origin="www.google.com"/> 

vào tệp phonegap.xml.

3

Trong hộp điện thoại mới nhất (1.7) trong Cordova.plist có một khóa: OpenAllWhitelistURLsInWebView đặt thành YES.

+1

..xin lỗi, điều này rõ ràng chỉ dành cho iOS. – tapmonkey

9

Điều này dường như đã thay đổi và nguồn gốc truy cập dường như không có hiệu lực. Nếu bạn đang sử dụng plugin danh sách trắng cordova, có vẻ như là tiêu chuẩn. Bạn cần sử dụng điều hướng cho phép trong tệp config.xml của mình. Nếu không có nó, nó sẽ mở trình duyệt web của bạn.

<plugin name="cordova-plugin-whitelist" version="1"/> 
<allow-navigation href="https://google.com/*" /> 

Sau đó, bạn có thể sử dụng window.location = 'https://google.com' để chuyển sang trang web khác trong JS của bạn.

+0

Đây phải là câu trả lời đúng. Đã cứu tôi rất nhiều đau buồn. Các câu trả lời khác là lỗi thời cho v4. Tôi vừa thêm

+0

Tôi không nghĩ rằng thẻ là cần thiết. Chỉ cần . – SBerg413

+0

Tôi đã thử và nó dường như không hoạt động với tôi với CLI 5.1.1. Trên Android, nó luôn mở trong một tab mới: (ngay cả với '' và plugin được cài đặt –

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