2013-11-29 6 views
1

У нас есть игра, связанная с facebook - у нас есть холст facebook, а также собственное мобильное приложение для ios и для Android, которое определено в панели управления facebook, и включена глубокая привязка. Мы хотим поделиться ссылкой в ​​нашей фан-странице, которая будет делать это при нажатии пользователя:Ссылка на приложение напрямую

  1. Если пользователь не одобрит наше приложения, прежде чем он будет предложено одобрить наше facebook приложения.
  2. Если пользователь использует настольное устройство, он будет перенаправлен на нашу страницу холста. Однако, если пользователь использует мобильное устройство, и приложение установлено на его устройстве, он должен быть направлен в мобильное приложение прямо на свое приложение (глубокая привязка). Если он использует мобильное устройство и приложение не установлен на своем устройстве, он должен забрать пользователя в соответствующий магазин приложений.

Любая идея, как мы можем глубоко привязать (используя facebook?) К нашим мобильным приложениям с нашей страницы поклонника facebook?

Спасибо!

ответ

1

Для iOS вы можете использовать url schemes, чтобы направлять пользователей к вашему приложению, чтобы проверить, установлено ли приложение на устройстве или нет, сделайте это.

if([[UIApplication sharedApplication] canOpenURL:[NSURL urlwithString:@"YourAppsScheme"]]) 
{ 
    //your app is installed on the device, open your app using 
    [[UIApplication sharedApplication] openURL:[NSURL urlwithString:@"YourAppsScheme"]] 
} 

else 
{ 
    [[UIApplication sharedApplication] openURL:[NSURL urlwithString:@"your applications itunes url"]] // 

} 

для Android вы делаете такую ​​же вещь, но вы проверяете имя Pacakge существует на устройстве или нет, How to check programmatically if an application is installed or not in Android?

образец фрагмент кода для Android:

installed = isPackageInstalled(APPPACKAGE); 
     if (installed) { 
Intent i; 
PackageManager manager = getPackageManager(); 
try { 
    i = manager.getLaunchIntentForPackage(APPPACKAGE); 
    if (i == null) 
     throw new PackageManager.NameNotFoundException(); 
    i.addCategory(Intent.CATEGORY_LAUNCHER); 
    startActivity(i); 
} catch (PackageManager.NameNotFoundException e) { 

}  

} 

else 
{ 
// open google play app details page of your app 

    final String appName = ...; 
    try 
    { 
    startActivity(new Intent(Intent.ACTION_VIEW, Uri.parse("market://details?id="+appName))); 
    } 

    catch (android.content.ActivityNotFoundException anfe) { 
    startActivity(new Intent(Intent.ACTION_VIEW, Uri.parse("http://play.google.com/store/apps/details?id="+appName))); 

    } 
} 

private boolean isPackageInstalled(String packagename, Context context) { 
    PackageManager pm = context.getPackageManager(); 
    try { 
     pm.getPackageInfo(packagename, GET_ACTIVITIES); 
     return true; 
    } catch (NameNotFoundException e) { 
     return false; 
    } 
} 

Делая это из веб-страница,

<script type="text/javascript"> 
function startMyApp() 
{ 
    document.location = 'yourAppScheme://'; 
    setTimeout(function() 
    { 
     if(confirm('You do not seem to have Your App installed, do you want to go download it now?')) 
     { 
     document.location = 'http://itunes.apple.com/us/app/yourAppId'; 
     } 
    }, 300); 
} 
</script> 
Смежные вопросы