【问题标题】:Trying to add Deep Linking my Android App尝试添加深度链接我的 Android 应用程序
【发布时间】:2016-01-05 11:42:08
【问题描述】:

我的应用程序运行良好,但是每当我在清单中添加深层链接代码时,我的应用程序午餐图标就会消失,这是我的清单文件

<activity
    android:name=".login.LoginActivity"
    android:screenOrientation="portrait">
    <intent-filter>
        <category android:name="android.intent.category.LAUNCHER" />
        <action android:name="android.intent.action.MAIN" />
        <action android:name="android.intent.action.VIEW" />
        <category android:name="android.intent.category.DEFAULT" />
        <category android:name="android.intent.category.BROWSABLE"/>
        <data android:scheme="https" />
        <data android:host="gizbo.ae" />
    </intent-filter>
</activity> 

每当我添加这三行以进行深度链接时。应用图标启动图标从设备上消失。

<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.BROWSABLE"/>
<data android:scheme="https" />
<data android:host="gizbo.ae" />

即使我删除了这两行

<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.BROWSABLE"/> 

同样的问题。

我只想让我的应用在 Google 搜索中可见,我正在关注此 link

【问题讨论】:

  • 你试过这样定义data&lt;data android:scheme="https" android:host="gizbo.ae" /&gt;
  • 我没有任何 pathPrefix。
  • 同样的问题应用图标消失了。
  • LoginActivity 活动是您的 LAUNCHER 活动吗?
  • 是的,LoginActivity 活动是我的 LAUNCHER 活动。

标签: android deep-linking


【解决方案1】:

您必须使用多个意图过滤器标签:

  <activity
        android:name=".login.LoginActivity"
        android:screenOrientation="portrait">
        <intent-filter>
            <category android:name="android.intent.category.LAUNCHER" />
            <action android:name="android.intent.action.MAIN" />
        </intent-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="https" />
            <data android:host="gizbo.ae" />
        </intent-filter>
    </activity> 

【讨论】:

【解决方案2】:

您必须添加另一个活动才能使用深度链接,然后开始您的登录活动并将您的数据传递给该活动。

所以声明活动如下:

 <activity
            android:name=".DeelinkActivity"
            android:screenOrientation="portrait"
            android:launchMode="singleTask"
            android:windowSoftInputMode="adjustResize|stateAlwaysHidden">
            <!-- URL scheme -->
            <intent-filter>
                <data android:host="gizbo.ae"
                    android:scheme="https" />

                <action android:name="android.intent.action.VIEW" />
                <category android:name="android.intent.category.DEFAULT" />
                <category android:name="android.intent.category.BROWSABLE" />
            </intent-filter>
            <!-- End URL scheme -->
  </activity>

然后在该活动的 onCreate 中,您可以调用登录活动,也可以从那里将数据传递给该活动。

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);

    Intent intent = getIntent();
    String action = intent.getAction();
    Uri data = intent.getData();
    //put code to pass data as extras and Start your login activity here
}

祝你好运。

【讨论】:

    猜你喜欢
    • 2015-05-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-12-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多