2015-04-09 29 views
6

Tôi muốn mở ứng dụng Android của tôi khi người dùng chạm vào liên kết đến trang web của tôi (tốt nhất là từ bài cổ phiếu Facebook, nhưng chúng ta hãy bắt đầu với URL đơn giản).mở App từ URL hoạt động trên Firefox dành cho Android nhưng không phải trên Google Chrome

Để đạt được điều này, tôi đã tạo ra một Hoạt động UrlReceiver và thêm mã này vào tập tin AndroidManifest.xml tôi (URL chỉ dành cho mục đích thử nghiệm):

<activity 
     android:name=".main.core.UrlReceiver" 
     android:exported="true"> 
     <intent-filter> 
      <action android:name="android.intent.action.VIEW"/> 
      <category android:name="android.intent.category.DEFAULT"/> 
      <category android:name="android.intent.category.BROWSABLE"/> 

      <data 
       android:host="martinfowler.com" 
       android:pathPrefix="/" 
       android:scheme="http"/> 
      <data 
       android:host="www.martinfowler.com" 
       android:pathPrefix="/" 
       android:scheme="http"/> 
      <data 
       android:host="test" 
       android:scheme="myapp"/> 
     </intent-filter> 
</activity> 

Và điều này đang làm việc trên Firefox dành cho Android, khi tôi nhập myapp://test/, ứng dụng sẽ tự động mở ứng dụng của tôi khi tôi nhập martinfowler.com có đầu Android bên cạnh url dẫn đến nhấn vào ứng dụng của tôi. Và điều này là tốt.

Nhưng đó là không làm việc trên Google Chrome. Khi tôi nhập myapp://test/ nó bắt đầu tìm kiếm của Google và khi tôi nhập martinfowler.com nó chỉ mở trang web.

tôi bắt đầu đào về vấn đề này trên web và tìm thấy tài liệu này: https://developer.chrome.com/multidevice/android/intents, exmplaining rằng schemas tùy chỉnh sẽ không hoạt động trong Chrome nữa vì vậy tôi cố gắng sử dụng các URL này (theo tài liệu):

intent://test/#Intent;scheme=myapp;package=com.my.app;end 
intent://#Intent;scheme=myapp;package=com.my.app;end 
intent://test/#Intent;package=com.my.app;scheme=myapp;end 
intent://#Intent;package=com.my.app;scheme=myapp;end 

Nhưng chúng cũng đang bắt đầu tìm kiếm của Google. Tôi có thể làm gì để mở ứng dụng của tôi từ URL trong Google Chrome?

Tôi đã thử nghiệm điều này trên cả KitKat và Lolipop.

Trả lời

5

Vấn đề là tôi đã (hoặc sao chép) URL vào Chrome Omnibox (thanh tìm kiếm) và theo vấn đề này: https://code.google.com/p/chromium/issues/detail?id=451956 nó không còn được hỗ trợ:

Trong http://crbug.com/331571 chúng tôi quyết định không để bắt đầu Intent nếu chuyển hướng ban đầu được bắt đầu từ đánh máy của người dùng vì chúng tôi nghĩ rằng nói chung là một người sử dụng sẽ không mong đợi để rời khỏi Chrome khi gõ một URL vào omnibox.

Vì vậy, mở ứng dụng từ URL trong Google Chrome chỉ hoạt động khi chạm vào liên kết và không hoạt động khi sử dụng thanh tìm kiếm.

+0

Cảm ơn bạn. Liên kết nào ở trên là kết nối hoạt động cuối cùng? –

+0

Trong Google Chrome? Không, bạn phải nhấp vào liên kết, bạn không thể nhập/sao chép liên kết trong Thanh địa chỉ Chrome (thanh tìm kiếm). – KlimczakM

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