2013-02-19 32 views
9

Xin chào các bạn, tôi đã cố gắng khởi chạy ứng dụng từ một liên kết trên email hoặc từ một bài đăng trên một số trang web mạng xã hội. Tôi biết câu hỏi này đã được đưa ra bởi một số người bạn nhưng vẫn là vấn đề mà tôi phải đối mặt là trong một số thiết bị hoặc một số ứng dụng gmail trên android không hiển thị các thẻ neo hoặc liên kết mà tôi đã chỉ định.Khởi chạy Ứng dụng Android từ liên kết hoặc email

Mục đích lọc mà tôi thiết lập để hoạt động của tôi là dưới đây:

<action android:name="android.intent.action.VIEW" /> 
<category android:name="android.intent.category.DEFAULT" /> 
<category android:name="android.intent.category.BROWSABLE" /> 
<data android:scheme="myappname" /> 

Và tôi đang gửi email với thẻ neo này

myappname://processtobedone/?id=1 

Nó hoạt động tốt với các ứng dụng email mà tôi có trên thiết bị Huewai nhưng trong ứng dụng gmail mặc định của thiết bị, nó không hiển thị nó có liên kết và trong một số thiết bị theo mặc định, nó gắn thêm https: làm hậu tố cho thẻ và khởi chạy trình duyệt.

Hy vọng bạn có thể hiểu được vấn đề của tôi và hy vọng sẽ có phản hồi tốt hơn.

Cảm ơn trước.

+0

Bản sao có thể có của [Tạo liên kết trong trình duyệt Android khởi động ứng dụng của tôi?] (Http://stackoverflow.com/questions/3469908/make-a-link-in-the-android-browser- start-up-my-app) –

Trả lời

2

Tạo liên kết thực (http :) để truy cập trang web bạn kiểm soát, chẳng hạn như trang web tĩnh trên amazon s3, sử dụng javascript trên trang web đó để phát hiện tác nhân người dùng Android và sau đó chuyển hướng đến liên kết bằng thẻ neo .

+0

Bạn thậm chí không cần JavaScript. Nếu '' có URL trang web thay vì lược đồ tùy chỉnh, người dùng có thể chọn mở ứng dụng trực tiếp. – CommonsWare

+0

@CommonsWare ah, đó là cách instagram phải hoạt động. Tôi luôn tự hỏi làm thế nào đó là một sự lựa chọn – CQM

+0

@CommonsWare Bạn có thể vui lòng cho biết làm thế nào để xác định url thay vì chương trình tùy chỉnh. – CodingRat

12

Thay vì sử dụng một chương trình tùy chỉnh, bạn có thể có một <intent-filter> xác định một địa chỉ URL mà bạn kiểm soát:

<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="www.this-so-does-not-exist.com" 
     android:path="/something" 
     android:scheme="http"/> 
</intent-filter> 

Sau đó, liên kết đến http://www.this-so-does-not-exist.com/something sẽ mang đến ứng dụng của bạn (trong một tính năng chọn, cùng với các Web duyệt) trên các thiết bị có ứng dụng của bạn và sẽ hiển thị trang web của bạn trên các thiết bị không có ứng dụng của bạn.

+0

Cảm ơn và xin lỗi vì đã trả lời chậm trễ @CommonsWare. Tôi sẽ thử điều này. – Dinash

+0

Xin cảm ơn bạn đã trả lời và nó hoạt động tốt trên hầu hết các thiết bị nhưng không phải trong tất cả vì nó không hoạt động với HTC EVO 4G. Bất cứ khi nào tôi bấm vào liên kết nó trực tiếp mở trình duyệt và tôi chắc chắn lý do tại sao nó là như vậy. Đồng thời kiểm tra xem có bất kỳ giá trị mặc định nào được đặt hay không và nó cũng không được đặt. – Dinash

+0

@Dinash: Cách tiếp cận này có thể không hoạt động trên nhiều thiết bị HTC do Mỹ vận chuyển do một giải pháp thay thế do lệnh cấm nhập khẩu do Apple thu được. Xem http://commonsware.com/blog/2012/07/23/linkify-problem-patent-behavior.html và http://commonsware.com/blog/2012/07/24/linkify-problem-detection-mitigation .html – CommonsWare

0
<activity 
android:name=".SplashEmailActivity" 
android:screenOrientation="portrait" 
android:exported="true" 
android:launchMode="singleInstance" android:configChanges="orientation|keyboard|keyboardHidden|screenSize" 
android:windowSoftInputMode="stateHidden|adjustResize" > 

<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:scheme="http" android:host="your.domain.name"/> 

</intent-filter> 

</activity> 
Các vấn đề liên quan