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

Douyin recommendation review mechanism, see here!

The number of monthly active users of Douyin worl...

Survey Report on Artificial Intelligence and Life in 2030

“AI and Life in 2030” examines eight areas of urb...

There are three levels of product marketing. Which one are you in?

I have also mentioned in previous articles that s...

Mission accomplished! Goodbye, Tianzhou-5!

At 9:13 a.m. Beijing time on September 12, 2023, ...

Advertising creativity is highly homogenized. How can we break the deadlock?

What should we do if our creative ideas become ho...

Apple releases iOS 15.0.2: finally fixes many iPhone issues!

[[428321]] After the release of iOS 15, various m...

SEO optimization plan for large and medium-sized websites

Large website optimization is mainly aimed at two...