如何从网页打开Android应用程序

amrnrhlw  于 2023-02-10  发布在  Android
关注(0)|答案(2)|浏览(223)

我目前正在尝试从网页打开一个Android应用程序,并传递两个参数。
我去了意图的解决方案,因为它似乎自定义方案是不推荐的,在这种情况下,我不需要一个深链接。
目前,在debug中,唯一发生的事情是我的intent url在chrome中打开并显示一个白色页面,它永远不会打开应用程序。
这是我的机器人清单. xml

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
          package="com.MyApp">
    <application android:allowBackup="true" android:icon="@mipmap/appicon" android:roundIcon="@mipmap/appicon_round" android:supportsRtl="true">
        
        <activity
            android:name="com.MyApp.activity.MainActivity"
            android:exported="true"
            android:label="MyApp">
            <intent-filter>
                <action android:name="com.MyApp.LAUNCH"></action>
                <category android:name="android.intent.category.DEFAULT"></category>
                <category android:name="android.intent.category.BROWSABLE"></category>
                <data android:scheme="MyScheme" android:host="MyHost" android:path="/"/>
            </intent-filter>
        </activity>
        
    </application>
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
    <uses-permission android:name="android.permission.INTERNET" />

</manifest>

这是我的博客

if (navigator.userAgent.match(/Android/i)) {
            var uri = "intent://MyApp#Intent;scheme=MyScheme;action=com.MyApp.LAUNCH;package=com.MyApp;S.p=" + p + ";S.c=" + c + ";end";
            window.open(uri);
        }

我已经看到了很多实现这一点的方法,也尝试了很多方法,但我不知道使用API 33的好方法是什么。
我尝试使用“intent:#Intent”,“intent://#Intent”,我尝试在活动下使用和不使用数据属性,我尝试了我自己的方案“MyScheme://"。
我想避免使用deeplink,因为我想保持我的网站可访问,而不启动应用程序(不同的目标)。

0md85ypi

0md85ypi1#

您需要查看Handling Android App Link文档。
基本上,要打开应用程序,您需要指定一些特定的方案,例如:

<activity
    android:name=".MyMapActivity"
    android:exported="true"
    ...>
    <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="myapp" />
    </intent-filter>
</activity>

要打开的链接将是:myapp://anypath_here?param1=value1&param2=value2
尝试使用唯一的方案,否则,如果其他应用程序可以打开它,您将打开一个“打开方式..”对话框。

izj3ouym

izj3ouym2#

要为您的应用启用链接处理验证,请添加符合以下格式的Intent过滤器:

<!-- Make sure you explicitly set android:autoVerify to "true". -->
<intent-filter android:autoVerify="true">
    <action android:name="android.intent.action.VIEW" />
    <category android:name="android.intent.category.DEFAULT" />
    <category android:name="android.intent.category.BROWSABLE" />

    <!-- If a user clicks on a shared link that uses the "http" scheme, your
         app should be able to delegate that traffic to "https". -->
    <data android:scheme="http" />
    <data android:scheme="https" />

    <!-- Include one or more domains that should be verified. -->
    <data android:host="..." />
</intent-filter>

更多信息,请参阅验证Android应用程序链接。

相关问题