我们有一个连接到 facebook 的游戏 - 我们有一个 facebook Canvas ,还有一个用于 ios 和 android 的 native 移动应用程序,它在 facebook 仪表板中定义并且启用了深度链接。 我们想在我们的粉丝页面中分享一个链接,当用户点击该链接时将执行此操作:
- 如果用户在他之前没有批准我们的应用程序,他将被要求批准我们的 facebook 应用程序。
- 如果用户使用的是桌面设备,他将被重定向到我们的 Canvas 页面。然而,如果用户使用的是移动设备并且应用程序安装在他的设备上,他应该直接在他的应用程序上被引导到移动应用程序(深度链接)。如果他使用移动设备并且他的设备上没有安装该应用程序,则应该将用户带到相关的应用程序商店。
知道如何从我们的 Facebook 粉丝页面深度链接(使用 Facebook 吗?)到我们的移动应用程序?
谢谢!
最佳答案
对于 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>
关于android - 直接链接到应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20280683/