当我从Play商店链接打开我的应用时,它不会加载任何活动并进入白屏

时间:2018-04-10 10:48:59

标签: android android-intent google-play intentfilter

我在Play商店发布了一个应用程序。当我在Facebook或其他社交网站上分享链接,然后我从手机上点击它,如果设备已经有应用程序而不是打开游戏商店,它会直接加载我的应用程序。问题是当它发生时,应用程序不会加载任何活动并卡在白屏上。我认为这可能与Application类有关,但我不知道如何解决这个问题。

public class AppGlobal extends Application {
@Override
public void onCreate() {
    super.onCreate();
    // things that I must do by extending application

    if(DEBUG)
        Log.e("AppGlobal","Started");
   }
}

更新:这是用户点击Facebook帖子的链接。请注意,我描述的行为仅在Facebook应用程序上点击帖子且用户已在同一设备上安装了我的应用程序时才会出现。

https://play.google.com/store/apps/details?id={package-name-of-app}

当我尝试碰巧播放商店链接时,这是调试日志记录。

04-10 12:32:47.955 11111-11111/? E/Zygote: v2
04-10 12:32:47.956 11111-11111/? E/Zygote: accessInfo : 0
04-10 12:32:49.056 11111-11111/it.mybeautifullApp E/AppGlobal: Started

我也在网上看到这可能与清单中缺少意图过滤器有关,但我认为我已正确设置它们:

更新2:发布了整个清单(使用新的深层链接尝试进行了更新)

  <application
    android:name=".AppGlobal"
    android:allowBackup="false"
    android:icon="@mipmap/ic_launcher"
    android:label="@string/app_name"
    android:largeHeap="true"
    android:roundIcon="@mipmap/ic_launcher_round"
    android:supportsRtl="true"
    android:theme="@style/AppTheme"
    tools:replace="android:icon,android:allowBackup">
    <activity
        android:name=".SplashActivity"
        android:theme="@style/NoActionBar">
        <intent-filter android:label="from_play_store">
            <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"
                android:host="play.google.com" />
        </intent-filter>
        <intent-filter android:label="from_play_store_market">
            <action android:name="android.intent.action.VIEW" />
            <category android:name="android.intent.category.DEFAULT" />
            <category android:name="android.intent.category.BROWSABLE" />
            <data
                android:scheme="market"
                android:host="details?id=it.cineprime" />
        </intent-filter>
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />
            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>
    <activity
        android:name=".LoginActivity"
        android:theme="@style/NoActionBar" />

    <meta-data
        android:name="com.facebook.sdk.ApplicationId"
        android:value="@string/facebook_app_id" />
    <meta-data
        android:name="preloaded_fonts"
        android:resource="@array/preloaded_fonts" />

    <activity
        android:name="com.facebook.FacebookActivity"
        android:configChanges="keyboard|keyboardHidden|screenLayout|screenSize|orientation"
        android:label="@string/app_name" />
    <activity
        android:name="com.facebook.CustomTabActivity"
        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="@string/fb_login_protocol_scheme" />
        </intent-filter>
    </activity>
    <activity
        android:name=".SignupActivity"
        android:theme="@style/NoActionBar" />
    <activity
        android:name=".MainActivity.MainActivity"
        android:screenOrientation="portrait" />
    <activity android:name=".CheckoutActivity" />
    <activity
        android:name=".SurveyActivity"
        android:theme="@style/NoActionBar" />
    <activity android:name=".BarcodeActivity" />
    <activity
        android:name=".SettingsActivity"
        android:label="@string/title_activity_settings"
        android:parentActivityName=".MainActivity.MainActivity">
        <meta-data
            android:name="android.support.PARENT_ACTIVITY"
            android:value="it.cineprime.MainActivity.MainActivity" />
    </activity>
    <activity
        android:name=".IntroActivity"
        android:screenOrientation="portrait"
        android:theme="@style/NoActionBar" />
    <activity
        android:name=".DetailActivity"
        android:theme="@style/NoActionBarCollapsing" />
</application>

所以问题是:当我的应用程序以上述方式调用时,我怎么能拦截?或者我怎样才能至少避免白屏卡住?

2 个答案:

答案 0 :(得分:0)

在主题中制作<item name="android:windowBackground">@null</item>以摆脱白屏

答案 1 :(得分:0)

您不会说出您用于链接到应用的网址类型。这是some documentation on recommended formats。将您在社交媒体上分享的网址放在您的问题中会有所帮助。

但您可能想阅读documentation on linking to specific content in your app。我怀疑您使用的是其中一个链接,但尚未为其设置意图过滤器as described here

特别需要:

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

处理Intent中的默认视图。我怀疑<data>进来的不是@string/fb_login_protocol_scheme所以没有活动来处理它。