Adakah yang bisa membimbing saya tentang cara meluncurkan aplikasi android saya dari browser android?
sumber
Adakah yang bisa membimbing saya tentang cara meluncurkan aplikasi android saya dari browser android?
Gunakan a <intent-filter>
dengan <data>
elemen. Misalnya, untuk menangani semua tautan ke twitter.com, Anda akan memasukkannya ke <activity>
dalam AndroidManifest.xml
:
<intent-filter>
<data android:scheme="http" android:host="twitter.com"/>
<action android:name="android.intent.action.VIEW" />
</intent-filter>
Kemudian, ketika pengguna mengklik tautan ke twitter di browser, mereka akan ditanya aplikasi apa yang akan digunakan untuk menyelesaikan tindakan: browser atau aplikasi Anda.
Tentu saja, jika Anda ingin memberikan integrasi yang erat antara situs web dan aplikasi Anda, Anda dapat menentukan skema Anda sendiri:
<intent-filter>
<data android:scheme="my.special.scheme" />
<action android:name="android.intent.action.VIEW" />
</intent-filter>
Kemudian, di aplikasi web Anda, Anda dapat menaruh tautan seperti:
<a href="my.special.scheme://other/parameters/here">
Dan ketika pengguna mengkliknya, aplikasi Anda akan diluncurkan secara otomatis (karena itu mungkin satu-satunya yang dapat menangani my.special.scheme://
jenis uris). Satu-satunya downside ke ini adalah bahwa jika pengguna tidak menginstal aplikasi, mereka akan mendapatkan kesalahan buruk. Dan saya tidak yakin ada cara untuk memeriksa.
Sunting: Untuk menjawab pertanyaan Anda, Anda dapat menggunakan getIntent().getData()
yang mengembalikan Uri
objek. Anda kemudian dapat menggunakan Uri.*
metode untuk mengekstrak data yang Anda butuhkan. Misalnya, katakanlah pengguna mengeklik tautan ke http://twitter.com/status/1234
:
Uri data = getIntent().getData();
String scheme = data.getScheme(); // "http"
String host = data.getHost(); // "twitter.com"
List<String> params = data.getPathSegments();
String first = params.get(0); // "status"
String second = params.get(1); // "1234"
Anda dapat melakukan hal di atas di mana saja Activity
, tetapi Anda mungkin ingin melakukannya onCreate()
. Anda juga dapat menggunakan params.size()
untuk mendapatkan jumlah segmen jalur di Uri
. Lihatlah ke javadoc atau situs web pengembang android untuk Uri
metode lain yang dapat Anda gunakan untuk mengekstrak bagian tertentu.
android:exported="true"
untuk merekaActivity
dalam manifes. Periksa jawaban ini stackoverflow.com/a/13044911/1276636Semua jawaban di atas tidak bekerja untuk saya
CHROME
pada 28 Januari 2014Aplikasi saya diluncurkan dengan benar dari http://example.com/someresource/ tautan dari aplikasi seperti hangout, gmail dll tetapi tidak dari dalam browser chrome.
untuk mengatasi ini, sehingga diluncurkan dengan benar dari CHROME Anda harus menetapkan filter maksud seperti ini
perhatikan
pathPrefix
elemennyaaplikasi Anda sekarang akan muncul di dalam pemilih aktivitas setiap kali pengguna meminta pola http://example.com/someresource/ dari browser chrome dengan mengklik tautan dari hasil pencarian google atau situs web lain
sumber
Silakan lihat komentar saya di sini: Buat tautan di peramban Android memulai aplikasi saya?
Kami sangat menyarankan orang untuk tidak menggunakan skema mereka sendiri, kecuali mereka mendefinisikan skema internet baru di seluruh dunia.
sumber
Dalam kasus saya, saya harus menetapkan dua kategori untuk
<intent-filter>
dan kemudian berfungsi:sumber
Misalnya, Anda memiliki hal-hal berikut:
Maka yang perlu Anda lakukan selanjutnya:
1) Tambahkan filter maksud ke Aktivitas Anda (Dapat berupa aktivitas apa pun yang Anda inginkan. Untuk info lebih lanjut, lihat dokumentasi ).
2) Buat file HTML untuk menguji tautan atau gunakan metode ini.
3) Gunakan Mobile Chrome untuk menguji
4) Itu dia.
Dan tidak perlu mempublikasikan aplikasi di pasar untuk menguji tautan dalam =)
Juga, untuk informasi lebih lanjut, periksa dokumentasi dan presentasi yang bermanfaat .
sumber
Juga harus
<category android:name="android.intent.category.BROWSABLE"/>
ditambahkan ke filter maksud untuk membuat aktivitas dikenali dengan benar dari tautan.sumber
Tautan berikut memberikan informasi tentang peluncuran aplikasi (jika dipasang) langsung dari browser. Jika tidak, aplikasi akan langsung membuka aplikasi di play store sehingga pengguna dapat mengunduh dengan lancar.
https://developer.chrome.com/multidevice/android/intents
sumber
Harap perhatikan jika ikon Anda hilang dari peluncur android ketika Anda menerapkan fitur ini, daripada Anda harus memisahkan filter maksud.
sumber
Ya, Chrome mencari bukannya mencari skema. Jika Anda ingin meluncurkan Aplikasi Anda melalui skema URI, gunakan Aplikasi utilitas keren ini di Play store. Itu menyelamatkan hari saya :) https://play.google.com/store/apps/details?id=com.naosim.urlschemesender
sumber
Port Xamarin jawaban Felix
Di Anda
MainActivity
, tambahkan ini ( dokumen: Android.App.IntentFilterAttribute Class ):Xamarin akan menambahkan yang berikut
AndroidManifest.xml
untuk Anda:Dan untuk mendapatkan params ( saya uji di OnCreate of MainActivity ):
Sejauh yang saya tahu, di atas dapat ditambahkan dalam aktivitas apa pun, tidak hanya MainActivity
Catatan:
OnCreate
acara aplikasiMainLauncher Activity
akan diaktifkan kembali.<a href="my.special.scheme://host/arg1/arg2">
di atas akan:Pembaruan: jika android membuat instance baru aplikasi Anda, Anda juga harus menambahkannya
android:launchMode="singleTask"
.sumber
Pendekatan Felix untuk menangani tautan dalam adalah pendekatan khas untuk menangani tautan dalam. Saya juga menyarankan memeriksa perpustakaan ini untuk menangani perutean dan penguraian tautan dalam Anda:
https://github.com/airbnb/DeepLinkDispatch
Anda dapat menggunakan anotasi untuk mendaftarkan Aktivitas Anda untuk tautan dalam URI tertentu, dan itu akan mengekstrak parameter untuk Anda tanpa harus melakukan omong kosong biasa untuk mendapatkan segmen jalur, mencocokkannya, dll. Anda dapat dengan mudah membuat catatan dan aktivitas seperti ini :
sumber
Hei, aku punya solusinya. Saya tidak menetapkan kategori sebagai "Default". Saya juga menggunakan aktivitas Utama untuk Data maksud. Sekarang saya menggunakan aktivitas berbeda untuk data maksud. Terima kasih untuk bantuannya. :)
sumber
Anda perlu menambahkan pseudo-hostname ke aplikasi CALLBACK_URL: // 'tidak masuk akal sebagai URL dan tidak dapat diuraikan.
sumber
contoh.php:
sumber
Lihat jawaban JRuns di sini . Idenya adalah membuat html dengan skema khusus Anda dan mengunggahnya ke suatu tempat. Kemudian jika Anda mengklik tautan khusus pada file html Anda, Anda akan diarahkan ke aplikasi Anda. Saya menggunakan artikel ini untuk android. Tapi jangan lupa untuk mengatur
Name = "MyApp.Mobile.Droid.MainActivity"
atribut nama lengkap untuk aktivitas target Anda.sumber
Pada 15/06/2019
apa yang saya lakukan adalah memasukkan keempat kemungkinan untuk membuka url.
yaitu, dengan
http
/https
dan 2 denganwww
awalan dan 2 tanpawww
dan dengan menggunakan ini aplikasi saya diluncurkan secara otomatis sekarang tanpa meminta saya untuk memilih browser dan opsi lainnya.
sumber