2014-04-09 16 views
7

Ứng dụng của tôi có thể mở các liên kết theo mặc định sử dụng này:Android - Mở url trong trình duyệt bên ngoài gây ra một vòng lặp vô hạn

<category android:name="android.intent.category.BROWSABLE" /> 
    <data 
     android:host="example.com"  
     android:scheme="http" /> 
    <data 
     android:host="www.example.com" 
     android:scheme="http" /> 
      .... 

Bây giờ, tôi có một liên kết trong ứng dụng của tôi rằng tôi không hỗ trợ (chưa) . Vì vậy, những gì tôi đang làm trong khi đó là mở nó bằng một trình duyệt bên ngoài. như thế này:

String requestURL = "www.example.com/unsupportedlink"; 
Intent i = new Intent(Intent.ACTION_VIEW); 
i.setData(Uri.parse(requestURL)); 
mActivity.startActivity(i); 

Những gì tôi mong đợi là nó sẽ được mở trên trình duyệt, nhưng nếu người dùng đã chọn rằng tất cả các liên kết này sẽ được mở bằng ứng dụng mặc định ("Allways mở" và không "Just Once") , ứng dụng được gọi lại và gửi lại liên kết tới trình duyệt - nó gây ra vòng lặp vô hạn. Làm cách nào để tránh điều này?

+0

có bạn đã cố gắng sử dụng một trang web hợp lệ như google.com hoặc một cái gì đó? – kAnNaN

+0

Có. Tôi đã thử nó với đúng url –

+0

Bạn đặt nó trực tiếp ví dụ trong ứng dụng của tôi tôi không tạo ra "dữ liệu" trong mi XML 'startActivity (new Intent (Intent.ACTION_VIEW, Uri.parse (" www.google.es "))) ; ' – CristianCV

Trả lời

5

I found the answer:

Uri uri = Uri.parse(requestURL); 
Intent browserIntent = new Intent(Intent.ACTION_VIEW); 
browserIntent.setDataAndType(uri, "text/html"); 
browserIntent.addCategory(Intent.CATEGORY_BROWSABLE); 
context.startActivity(browserIntent); 
Các vấn đề liên quan