点击电子邮件,消息或浏览器应用程序中的URL链接时,我需要打开我的应用程序。所以,请参阅我的代码以获取此功能:
<activity
android:name=".ui.main.MainActivity"
android:configChanges="orientation"
android:screenOrientation="portrait">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
<intent-filter>
<data android:scheme="https" />
<data android:scheme="https" android:host="www.mysite.org"/>
<action android:name="android.intent.action.VIEW"/>
<category android:name="android.intent.category.BROWSABLE"/>
<category android:name="android.intent.category.APP_EMAIL"/>
<category android:name="android.intent.category.APP_MESSAGING"/>
<category android:name="android.intent.category.APP_BROWSER"/>
<category android:name="android.intent.category.DEFAULT"/>
</intent-filter>
</activity>
此代码已足够,适用于某些移动设备,尤其是Android版本 5.0,6.0和7.0 的设备,但不适用于版本 7.1和8.0 。为什么会这样?这是一个许可问题吗?
答案 0 :(得分:2)
例如:您的网址将类似于 https://example.com ,并且您在Android Manifest中有意图过滤器,如下所示:
<activity
android:name="com.droid.MainActivity"
android:label="@string/app_name" >
<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:host="example.com"
android:scheme="https" />
</intent-filter>
</activity>
使用网址映射编辑器轻松地将URL意图过滤器添加到您的Android应用链接活动(Android Studio&gt;工具&gt; Android应用链接)。
答案 1 :(得分:1)
在阅读changes in Android O后,我得出结论,问题描述如下
URI不能包含空标签。以前,该平台支持一个 解决方法接受主机名中的空标签,这是非法的 使用URI。此解决方法是为了与旧的libcore兼容 版本。错误使用API的开发人员会看到ADB 消息:“URI example..com在主机名中有空标签。这是 格式错误,未来的Android版本将不被接受。“ Android 8.0删除了此解决方法;系统返回null for 格式错误的URI。
因此,请尝试将android:label="string resource"
添加到您的intent-filter
语法中,以便用户在替代菜单中看到它。