我正在嘗試創建一個環境,以便通過電子郵件打開iPhone應用程序。如果我使用Facebook的託管服務作爲appLink(Facebook AppLink Hosting API),只要我點擊它在Facebook移動應用內生成的鏈接,我就可以成功打開該應用。但是,如果我嘗試從另一個移動應用程序(例如Notes或Mail)中單擊相同的鏈接,它只會重定向到Facebook,而不會重定向到我的應用程序。此外,Facebook AppLink Hosting API只允許您爲單個應用程序創建鏈接。我希望能夠自動打開我的付費版應用程序或應用程序的免費版本(按此順序),具體取決於用戶在其移動設備上具有的應用程序。appLinks無法通過電子郵件打開iPhone應用程序
因此,我遵循在(applinks.org)上找到的關於如何在我自己的服務器上設置元標記以執行打開AppLink的任務的描述。所以,我有一個網頁與下面的HTML:
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" "http://www.w3.org/TR/REC-html40/loose.dtd">
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=utf-8">
<title>MyApp</title>
<meta property="al:iphone:url" content="myAppLinkScheme://Home">
<meta property="al:iphone:app_name" content="MyApp">
<meta property="al:iphone:app_store_id" content="471147787">
<meta property="al:iphone:url" content="myAppLinkLiteScheme://Home">
<meta property="al:iphone:app_name" content="MyApp Lite">
<meta property="al:iphone:app_store_id" content="518829102">
<meta property="al:ipad:url" content="myAppLinkLiteScheme://Home">
<meta property="al:ipad:app_name" content="MyApp Lite">
<meta property="al:ipad:app_store_id" content="518829102">
<meta property="al:web:should_fallback" content="false">
</head>
<body>Redirecting...</body>
</html>
然後我使用Facebook的託管的應用鏈接工具創建的應用鏈接。通過使用他們的Open Graph Object Debugger,我能夠刮掉使用他們的工具創建的AppLink的內容。 Facebook元標籤與我的元標籤非常相似,但有一些差異。正如我之前提到的,第一個區別是您只能使用Facebook工具指定一個應用程序,因此只有一個iPhone url,app_name和app_store_id meta標記。另外兩個差異如下標籤[我代替我APP_ID與....以下標籤]:
<meta property="fb:app_id" content="28...........64">
<meta http-equiv="refresh" content="0;url=https://apps.facebook.com/28...........64/?fb_source=mobile">
有明顯的「刷新」元標記apps.facebook.com發生重定向。我不知道那裏發生了什麼,但即使我把所有這些標籤放在我的網頁頭標籤中,結果也是一樣的。如果您單擊來自移動應用程序(例如郵件或便箋)的鏈接,則只會打開我的網頁。重定向不會發生在我的應用程序或Facebook上。
請注意,我還爲每個應用程序的info.plists和appDelegates添加了所需的方案信息。也就是說,在我的info.plist的URL類型中,我添加了com.myApp.myAppLinkScheme的標識符和myAppLinkScheme的一個方案。對於info.plist的精簡版本也做了類似的補充。此外,我添加了應用程序的付費和免費版本都與我的appDelegate必要的修改:
-(BOOL)application:(UIApplication *)application
openURL:(NSURL *)url
sourceApplication:(NSString *)sourceApplication
annotation:(id)annotation {
if ([[url scheme] isEqualToString:@"myAppLinkScheme"]) {
return YES;
}
...
}
所以,我明顯失去了一些東西。需要什麼額外的實施來設置我的服務器,以便當用戶點擊從iPhone的郵件應用程序指向我的服務器的鏈接時,它們被重定向到我的應用程序?