Apakah mungkin membuat tautan seperti:
<a href="anton://useful_info_for_anton_app">click me!</a>
menyebabkan aplikasi Anton saya mulai?
Saya tahu ini berfungsi untuk aplikasi Android Market dengan protokol pasar, tetapi bisakah hal serupa dilakukan dengan aplikasi lain?
Berikut adalah contoh tautan yang akan memulai Android Market:
<a href="market://search?q=pname:com.nytimes.android">click me!</a>
Pembaruan:
Jawaban yang saya terima dari eldarerathis sangat bagus, tetapi saya hanya ingin menyebutkan bahwa saya mengalami masalah dengan urutan subelemen dari <intent-filter>
tag. Saya sarankan Anda membuat yang lain <intent-filter>
dengan subelemen baru di tag itu untuk menghindari masalah yang saya miliki. Misalnya AndroidManifest.xml
penampilan saya seperti ini:
<activity android:name=".AntonWorld"
android:label="@string/app_name">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
<intent-filter>
<data android:scheme="anton" />
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.BROWSABLE" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
</activity>
Jawaban:
Saya pikir Anda akan ingin melihat
<intent-filter>
elemen file Mainfest Anda. Secara khusus, lihat dokumentasi untuk<data>
sub-elemen.Pada dasarnya, yang perlu Anda lakukan adalah mendefinisikan skema Anda sendiri. Sesuatu di sepanjang garis:
Maka Anda harus dapat meluncurkan aplikasi Anda dengan tautan yang dimulai dengan
anton:
skema URI.sumber
JANGAN gunakan skema khusus Anda sendiri seperti itu !!! Skema URI adalah jaringan global namespace . Apakah Anda memiliki skema "anton:" di seluruh dunia? Tidak? Maka JANGAN menggunakannya.
Salah satu opsi adalah memiliki situs web, dan memiliki filter maksud untuk URI tertentu di situs web itu. Misalnya, inilah yang dilakukan Market untuk mencegat URI di situs webnya:
Atau, ada skema "niat:". Ini memungkinkan Anda untuk mendeskripsikan hampir semua Intent sebagai URI, yang akan coba diluncurkan oleh browser ketika diklik. Untuk membangun skema seperti itu, cara terbaik adalah menulis kode untuk membangun Intent yang ingin Anda luncurkan, dan kemudian mencetak hasil dari intent.toUri (Intent.URI_INTENT_SCHEME).
Anda dapat menggunakan tindakan dengan maksud ini untuk menemukan aktivitas apa pun yang mendukung tindakan itu. Browser akan secara otomatis menambahkan kategori BROWSABLE ke maksud sebelum meluncurkannya, untuk alasan keamanan; itu juga akan menghapus komponen eksplisit yang Anda berikan untuk alasan yang sama.
Cara terbaik untuk menggunakan ini, jika Anda ingin memastikan hanya meluncurkan aplikasi Anda, adalah dengan tindakan Anda sendiri dan menggunakan Intent.setPackage () untuk mengatakan bahwa Intent hanya akan cocok dengan paket aplikasi Anda.
Pertukaran antara keduanya:
http URI mengharuskan Anda memiliki domain yang Anda miliki. Pengguna akan selalu mendapatkan opsi untuk menampilkan URI di browser. Ini memiliki sifat back-back yang sangat bagus di mana jika aplikasi Anda tidak diinstal, mereka hanya akan mendarat di situs web Anda.
URI niat mengharuskan aplikasi Anda sudah diinstal dan hanya di ponsel Android. Izinkan hampir semua maksud (tetapi selalu menyertakan kategori BROWSABLE dan tidak mendukung komponen eksplisit). Mereka memungkinkan Anda untuk mengarahkan peluncuran hanya ke aplikasi Anda tanpa pengguna memiliki pilihan untuk pergi ke browser atau aplikasi lain.
sumber
market://
tautan :)Saya minta maaf karena mempromosikan diri saya sendiri, tetapi saya memiliki plugin jQuery untuk meluncurkan aplikasi asli dari tautan web https://github.com/eusonlito/jquery.applink
Anda dapat menggunakannya dengan mudah:
sumber
Saya juga menghadapi masalah ini dan melihat banyak halaman tidak masuk akal. Saya telah belajar bahwa untuk membuat aplikasi Anda dapat dijelajahi, ubah urutan elemen XML, ini ini:
Ini bekerja untuk saya dan mungkin membantu Anda.
sumber
Ini resep saya:
Buat HTML statis yang mengarahkan ke URL aplikasi yang Anda minta, letakkan halaman itu di web.
Dengan begitu, tautan yang Anda bagikan adalah tautan 'asli' sejauh menyangkut Android (tautan itu akan 'dapat diklik').
Anda 'membagikan' tautan HTTP reguler, www.your.server.com/foo/bar.html URL ini mengembalikan HTML 8 baris sederhana yang dialihkan ke URI aplikasi Anda (window.location = "blah: // kuku") ( perhatikan bahwa 'bla' tidak harus berupa HTTP atau HTTPS lagi).
Setelah Anda menjalankan dan menjalankannya, Anda dapat menambah HTML dengan semua kemampuan mewah seperti yang disarankan di atas.
Ini berfungsi dengan browser bawaan, Opera, dan Firefox (belum menguji browser lain). Firefox bertanya 'Tautan ini perlu dibuka dengan aplikasi' (ok, batalkan). Peramban lain tampaknya tidak terlalu mengkhawatirkan keamanan, mereka hanya membuka aplikasi, tidak ada pertanyaan.
sumber
<a href="iamnearby://register_activate">Activate</a>
Setelah Anda memiliki maksud dan skema url khusus untuk pengaturan aplikasi Anda, kode javascript ini di bagian atas halaman penerima telah berfungsi untuk saya di iOS dan Android:
Ini hanya diuji pada browser Android. Saya tidak yakin tentang Firefox atau Opera. Kuncinya adalah meskipun peramban Android tidak akan memberikan pengecualian yang bagus untuk Anda
window.open(custom_url, '_blank')
, peramban itu akan gagal dan kembalinull
yang dapat Anda uji nanti.Pembaruan: gunakan
store_loc = "https://play.google.com/store/apps/details?id=com.raditaz";
untuk menautkan ke Google Play di Android.sumber
Anda mungkin ingin mempertimbangkan perpustakaan untuk menangani tautan dalam ke aplikasi Anda:
https://github.com/airbnb/DeepLinkDispatch
Anda dapat menambahkan filter maksud pada Aktivitas beranotasi seperti yang disarankan orang di atas. Ini akan menangani perutean dan penguraian parameter untuk semua tautan dalam Anda. Misalnya, MainActivity Anda mungkin memiliki sesuatu seperti ini:
Itu juga dapat menangani parameter kueri.
sumber
Coba trik sederhana saya:
dan tautan html saya:
atau Anda dapat membuat <a href = "classRegister: benar "> <- nilai "true" untuk kelas nama file
namun skrip ini berfungsi untuk tautan mailto :)
sumber
JavascriptInterface
dengan solusi, ini solusi yang tepat jika Anda perlu mendukung 2.3 di mana JavascriptInterface disadap.Metode ini tidak memanggil dialog disambiguasi yang meminta Anda untuk membuka aplikasi atau browser Anda.
Jika Anda mendaftarkan yang berikut di Manifest Anda
dan klik url ini dari email di ponsel Anda misalnya
maka android akan mencoba mencari aplikasi dengan paket com.myApp yang merespons maksud galeri Anda dan memiliki skema myApp . Jika tidak bisa, itu akan membawa Anda ke toko, mencari com.myApp , yang seharusnya menjadi aplikasi Anda.
sumber