使用Facebook深层链接处理不同的Android软件包名称

时间:2015-03-05 22:50:06

标签: android facebook amazon

我们已经建立了一个应用程序,我们已经发布到Google Play和亚马逊,但是,每个应用程序都有一个独特的包名称(实际上一个是全部小写,另一个有一些上限)。

问题是,我们的Facebook深层链接只能使用包名设置,而且每个应用只能设置一个。我们已被建议使用我们拥有的应用程序链接和Android意图,但我们没有运气。我们可能做错了什么想法?

VIEW操作的当前意图过滤器:

<intent-filter >
            <action android:name="action.intent.action.VIEW" />
            <category android:name="android.intent.category.DEFAULT"/>             
            <category android:name="android.intent.category.BROWSABLE"/>
            <data android:scheme="http" android:host="www.amazon.com" android:pathPrefix="/dp/B00TSE6VBQ">
            <data android:scheme="amzn" android:host="apps" android:pathPrefix="/android?p=com.playdemic.villagelife.android">
            <data android:scheme="amzn" android:host="apps" android:pathPrefix="/android?asin=B00TSE6VBQ">
            <data android:scheme="http" android:host="apps.facebook.com" android:pathPrefix="/villagelifegame">
            <data android:scheme="https" android:host="apps.facebook.com" android:pathPrefix="/villagelifegame">
            </data></data></data></data></data>
        </intent-filter>

以下是代码示例:

var publish = function (o) {
    if (!isSociallyInitialized()) return false;
    debugJSON(o, 'Source Stream Data');

    var newsfeedPostId = 200 + parseInt(o.newsfeedPostId, 10);
    var ut = getUniqueToken(settings.user.pId);
    var link = $.format('{canvasPage}/?action={action}&sid={sid}&sender {sender}&ut={ut}', {
        canvasPage: fbSettings.canvasPage,
        action: 'stream',
        sid: newsfeedPostId,
        sender: settings.user.pId,
        ut: ut
    });

    $.extend(o, {
        method: 'feed',
        picture:     $.format('{clientApplicationUrl}assets/graphics/social/newsfeed/{picture}.jpg?v={version}', {
            clientApplicationUrl: settings.clientApplicationUrl,
            picture: o.picture,
            version: settings.applicationVersion
        }),
        link: link,
        actions: [{ name: locale.translation.COLLECT_REWARD, link: link}]
   });

    debugJSON(o, 'Stream Data');

    hideObject();
    FB.ui(o, function (response) {
        debugJSON(response, 'Share Result');
        if (response && response.post_id) {
            processStream(o.newsfeedPostId, ut, response.post_id);
        }
        updateStream({ id: o.newsfeedPostId, status: (response && response.post_id ? true : false) });
        showObject();
    });
    return false;
};

0 个答案:

没有答案