The basic principles and implementation details of calling APP from the Web in Android

The basic principles and implementation details of calling APP from the Web in Android

Web-based APP is mainly based on the URL Scheme mechanism. URL Scheme is a protocol similar to http and https, which starts and transmits data to a specified APP through a specific link. This mechanism is supported on both iOS and Android platforms.

When you click a link containing a specific URL Scheme on a web page, the system will check whether the Scheme has been registered in an APP installed on the device. If a matching APP is found, the system will start the APP and pass the parameters in the link to the APP. The web page can call up the APP through the link and realize the data transfer.

Different platforms may have different support levels and restrictions for URL Scheme. For example, iOS platform has relatively good support for URL Scheme, but there are some restrictions in actual use, such as some applications may prohibit this way of invoking. On the Android platform, different application vendors also have different support for URL Scheme, and these differences need to be taken into account and adapted during implementation.

The implementation of Web-invoked APP also needs to consider some security issues, such as ensuring the uniqueness of the URL Scheme to avoid conflicts with other application schemes; verifying and filtering the transmitted data to prevent malicious attacks and data leakage.

Usage Examples

Define the scheme in AndroidManifest.xml. The scheme cannot be the same as the ones already used, such as http, https, ftp, sms, mailto, etc.

 <activity android:name=".MainActivity"> <intent-filter> <action android:name="android.intent.action.MAIN"/> <category android:name="android.intent.category.LAUNCHER"/> </intent-filter> <!-- web 唤起添加的filter --> <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="reathin.scheme" android:host="reathin.host" /> </intent-filter> </activity>

Test Html page:

 <!DOCTYPE html> <html lang="zh-CN"> <head> <meta charset="UTF-8"> <title>Web唤起APP</title> </head> <body style="text-align: center"> <a href="my.scheme://reathin.host?name=Raysen¶m=我是参数" style="font-: 26px">点击唤起APP</a> </body> </html>

There are two parameters in the link, name and param, which can also pass some data when the APP is called up.

 @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); Intent intent = getIntent(); if (null != intent && null != intent.getData()) { Uri uri = intent.getData(); String name = uri.getQueryParameter("name"); String title = uri.getQueryParameter("param"); } }

In order to ensure that the Web can successfully invoke the APP, the corresponding link needs to be correctly configured in the Web page to ensure that the format and parameters of the link match the Scheme registered in the APP. Security is also an important factor to consider, and the security of the link needs to be ensured to prevent malicious attacks and data leakage.

<<:  The key to optimizing Bitmap memory usage: image resolution, folder storage and loading strategy

>>:  iOS 18 is about to be released, get to know the new features first

Recommend

Don’t use subclasses! Swift is protocol-oriented at its core

The core of Swift We can understand Swift through...

What! We won't be able to drink Coke in half a year?

On a hot summer day, opening a bottle of ice-cold...

After Douyin defeats Kuaishou, how long will it remain popular among users?

Some time ago, a strange wind suddenly blew up in...

There are only a few days left! Have you eaten this year's spring vegetables?

Author: Fluent After the Waking of Insects, peach...

How to do Tik Tok marketing?

During this period, Tik Tok is very popular and e...

How to quickly acquire and convert customers through online operations?

The traditional education and training industry h...

Vocational skills training advertising plan!

With the continuous high-quality development of m...