2010-06-28 45 views
12

Tôi đã cố gắng tìm hiểu cách tạo mục đích sẽ mở trình duyệt ưa thích của người dùng mà không chỉ định URL. Tôi biết cách mở bằng cách cung cấp một URL cụ thể như sau:Mục đích Android để mở trình duyệt ưa thích của người dùng

Intent intent = new Intent(); 
intent.setAction(Intent.ACTION_VIEW); 
intent.setData(android.net.Uri.parse("http://www.google.com")); 
context.startActivity(intent); 

Tôi không muốn mở trình duyệt tới bất kỳ trang nào cụ thể, chỉ là trang chủ được đặt hoặc bất kỳ trang nào người dùng cuối cùng. Tôi đã nghĩ về việc tìm kiếm trang chủ được đặt trong ứng dụng nhưng bạn không thể làm điều đó với ứng dụng Trình duyệt mặc định vì nó là riêng tư. Có ai biết cách để làm điều này không?

Trả lời

1

URL trang chủ được chỉ định bởi người dùng sẽ được lưu trữ trong tùy chọn cho bất kỳ ứng dụng trình duyệt nào họ đang sử dụng. Với mô hình sandbox của Android dành cho ứng dụng, bạn sẽ không có quyền truy cập vào ứng dụng này trừ khi ứng dụng có Nhà cung cấp nội dung cho phép truy cập. Ngoài ra, các nhà cung cấp nội dung sẽ khác nhau giữa các ứng dụng trình duyệt và bạn sẽ có một thời gian khó khăn bao gồm những người tồn tại.

Bạn đã thử mở một trang web cố gắng cập nhật URL trang chủ của người dùng thông qua việc sử dụng JavaScript phải không?

+0

Không, tôi chưa thử phương pháp này như tôi đã chủ yếu là suy nghĩ về việc sử dụng các intents. Tôi không phải là một nhà phát triển web, nhưng tôi sẽ xem xét nó! Có bất kỳ API javascript hữu ích nào có thể truy cập trang chủ không? –

+0

Tôi đã tìm cách truy xuất trang chủ của trình duyệt và tìm cách truy cập trang chủ của trình duyệt bằng javascript nhưng không có bất kỳ may mắn nào. Tôi không nghĩ rằng nó có thể làm điều này. Có người quan tâm để chứng minh tôi sai. –

9

Đây là cách tôi đã làm nó:

String packageName = "com.android.browser"; 
String className = "com.android.browser.BrowserActivity"; 
Intent internetIntent = new Intent(Intent.ACTION_VIEW); 
internetIntent.addCategory(Intent.CATEGORY_LAUNCHER); 
internetIntent.setClassName(packageName, className); 
mHomeActivity.startActivity(internetIntent); 

Nếu bạn không có thiết lập trang chủ, nó sẽ mở ra một trang trống (ít nhất là trong Android 2.1).

2

này là một câu trả lời muộn, nhưng trông giống như tính năng này có sẵn trong API 15:

Intent browser = Intent.makeMainSelectorActivity(
     Intent.ACTION_VIEW, 
     Intent.CATEGORY_APP_BROWSER); 

    startActivity(browser); 

Docs for makeMainSelectorActivity

5
  Uri uri = Uri.parse("www.google.com"); 
      Intent intent = new Intent(Intent.ACTION_VIEW,uri); 
      // Create and start the chooser 
      Intent chooser = Intent.createChooser(intent, "Open with"); 
      startActivity(chooser); 

Mã này tạo nên một ý định mở sử dụng trình duyệt theo quy định.

+3

URl phải có "http: //" nếu không thì ý định sẽ không được công nhận –

0

Tham khảo bài viết này để biết chi tiết implicit intent in android

  Intent sendIntent = new Intent(Intent.ACTION_VIEW, Uri.parse("http://www.maidofknowledge.com")); 
      Intent chooser = Intent.createChooser(sendIntent, "Choose Your Browser"); 
      if (sendIntent.resolveActivity(getPackageManager()) != null) { 
       startActivity(chooser); 
Các vấn đề liên quan