YouTube나 Maps 등의 iPhone 앱에 http+domain 기반의 URL Scheme를 등록할 수 있습니까?
iOS에서 앱이 전화기에 설치될 때마다 내 도메인(http://martijnthe.nl 등)의 URL을 열고, 그렇지 않을 경우 모바일 Safari를 사용하여 URL을 열 수 있도록 하고 싶습니다.
독자적인 프로토콜 서픽스를 작성하여 Info.plist에 등록할 수 있다고 읽었습니다만, 앱이 인스톨 되어 있지 않은 경우는 Mobile Safari에서 에러가 발생합니다.
회피책은 무엇입니까?
한 가지 아이디어:
1) 임의의 데스크톱 브라우저에서 열리는http:// URL을 사용하여 브라우저를 통해 서비스를 렌더링합니다.
2) User-Agent를 확인하고 Mobile Safari의 경우 myprotocol:// URL을 열어 iPhone 앱을 열고 실패 시 Mobile iTunes를 앱 다운로드에 개방합니다.
이게 먹힐지 모르겠지만...제안사항감사합니다!
이 작업을 수행하는 가장 덜 거슬리는 방법은 다음과 같습니다.
- 사용자 에이전트가 iPhone/iPod Touch의 에이전트인지 확인합니다.
- .
appInstalled
표시 - true로 되어 있는 cookie를 true로 합니다.
window.location
로로 합니다.your-uri://
- 「Yep, I got it」, 「No, 그러나 나는 그것을 시험해 보고 싶다」, 「I want to try it」, 「iPhone」, 「iPhone」, 「iPhone」, 「iPhone」, 「iPhone」, 「I got it」, 「Yep, I got it」, 「No, I want it」, 「I want it」, I want to try, I want it」, I want it.
- 되고 "Yep" "Cookie" true"로 .
your-uri://
- "No" 버튼을 누르면 "http://itunes.com/apps/yourappname"로 리디렉션되어 장치에서 앱 스토어가 열립니다.
- "Leave me one" 버튼을 누르면 cookie가 false로 설정되고 있습니다.
- 되고 "Yep" "Cookie" true"로 .
다른 옵션은 Javascript에서 다음 작업을 수행하는 것입니다.
setTimeout(function() {
window.location = "http://itunes.com/apps/yourappname";
}, 25);
// If "custom-uri://" is registered the app will launch immediately and your
// timer won't fire. If it's not set, you'll get an ugly "Cannot Open Page"
// dialogue prior to the App Store application launching
window.location = "custom-uri://";
당신의 폴백이 다른 앱링크라면 자바스크립트로 이것을 할 수 있습니다.Nathan의 제안을 바탕으로:
<html>
<head>
<meta name="viewport" content="width=device-width" />
</head>
<body>
<h2><a id="applink1" href="fb://profile/116201417">open facebook with fallback to appstore</a></h2>
<h2><a id="applink2" href="unknown://nowhere">open unknown with fallback to appstore</a></h2>
<p><i>Only works on iPhone!</i></p>
<script type="text/javascript">
// To avoid the "protocol not supported" alert, fail must open another app.
var appstorefail = "itms://itunes.apple.com/us/app/facebook/id284882215?mt=8&uo=6";
function applink(fail){
return function(){
var clickedAt = +new Date;
// During tests on 3g/3gs this timeout fires immediately if less than 500ms.
setTimeout(function(){
// To avoid failing on return to MobileSafari, ensure freshness!
if (+new Date - clickedAt < 2000){
window.location = fail;
}
}, 500);
};
}
document.getElementById("applink1").onclick = applink(appstorefail);
document.getElementById("applink2").onclick = applink(appstorefail);
</script>
</body>
</html>
라이브 데모를 확인해 주세요.
iOS 6 기기에는 스마트 앱 배너를 사용한 앱 프로모션 옵션이 있습니다.
하는 것을 했지만, 이 답변은 앱 .UIWebView
.
해서 ★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★UIWebView
트위터를 하다그리고 그들이 내 사이트의 버튼을 클릭했을 때 트위터는 화려해지려고 노력했고 단지 완성하려고 했다.window.location
이치노 무슨 요.UIAlertView
계하?????라는 메시지가 뜨면 두 번째 팝업 없이 앱스토어로 바로 리디렉션됩니다.
이프람스에 의해, 「」는 됩니다.UIAlertView
심플하고 우아한 사용자 경험을 제공합니다.
j쿼리
var redirect = function (location) {
$('body').append($('<iframe></iframe>').attr('src', location).css({
width: 1,
height: 1,
position: 'absolute',
top: 0,
left: 0
}));
};
setTimeout(function () {
redirect('http://itunes.apple.com/app/id');
}, 25);
redirect('custom-uri://');
자바스크립트
var redirect = function (location) {
var iframe = document.createElement('iframe');
iframe.setAttribute('src', location);
iframe.setAttribute('width', '1px');
iframe.setAttribute('height', '1px');
iframe.setAttribute('position', 'absolute');
iframe.setAttribute('top', '0');
iframe.setAttribute('left', '0');
document.documentElement.appendChild(iframe);
iframe.parentNode.removeChild(iframe);
iframe = null;
};
setTimeout(function () {
redirect('http://itunes.apple.com/app/id');
}, 25);
redirect('custom-uri://');
편집:
iframe에 절대 위치를 추가하여 삽입할 때 페이지 하단에 임의 공백 비트가 없도록 합니다.
또, Android 에서는 이 어프로치의 필요성을 깨닫지 못하고 있는 것도 중요합니다.「」를 사용합니다.window.location.href
정상적으로 동작합니다.
은 드디어 특정 iOS9를 을 등록할 수 .http://
URL: 유니버설링크
작동 원리에 대한 매우 대략적인 설명:
- 합니다.
http://
URL(URL)입니다. - 지정된 도메인의 서버에서 서버의 도메인에서 URL을 열겠다고 선언한 앱에서 열 URL을 지정해야 합니다.
- 는 iOS URL을 여는 시도를 합니다.
http://
위에서 설명한 바와 같이 셋업 URL로 올바른 앱이 설치되면 자동으로 열립니다. Safari ★★★★★★★★★★★★★★★★★★★★★★…
iOS에서 딥링크를 하는 가장 깔끔한 방법입니다만, 유감스럽게도 iOS9 이상에서만 동작합니다.
Nathan과 JB의 답변을 바탕으로 다시 구축:
앱을 실행하는 방법 url에서 엑스트라 클릭을 하지 않고 링크를 클릭하는 중간 단계를 포함하지 않는 솔루션을 원하는 경우 다음을 사용할 수 있습니다.이 Javascript를 통해 앱이 설치되어 있으면 정상적으로 기동하거나 타임아웃 시 앱스토어를 기동하는 Django/Python의 Httpresponse 객체를 반환할 수 있었습니다.또, iPhone 4S 로 동작하려면 , 타임 아웃 기간을 500 ~100 으로 조정할 필요가 있었습니다.테스트 및 조정하여 상황에 맞게 조정하십시오.
<html>
<head>
<meta name="viewport" content="width=device-width" />
</head>
<body>
<script type="text/javascript">
// To avoid the "protocol not supported" alert, fail must open another app.
var appstorefail = "itms://itunes.apple.com/us/app/facebook/id284882215?mt=8&uo=6";
var loadedAt = +new Date;
setTimeout(
function(){
if (+new Date - loadedAt < 2000){
window.location = appstorefail;
}
}
,100);
function LaunchApp(){
window.open("unknown://nowhere","_self");
};
LaunchApp()
</script>
</body>
</html>
window.location = appurl;// fb://method/call..
!window.document.webkitHidden && setTimeout(function () {
setTimeout(function () {
window.location = weburl; // http://itunes.apple.com/..
}, 100);
}, 600);
document.webkitHidden
이 백그라운드로 중인지 이 코드는 www..com의 사파리입니다.www.baidu.com을 참조하십시오.
를 추가하는 경우iframe
웹 페이지에 있는 웹 페이지에서src
앱의 커스텀 스킴으로 설정하면 iOS는 자동으로 앱의 해당 위치로 리다이렉트됩니다.앱을 설치하지 않으면 아무 일도 일어나지 않습니다.이렇게 하면 앱이 설치된 경우 앱으로 상세 링크를 걸 수 있으며, 설치되지 않은 경우 앱 스토어로 리디렉션할 수 있습니다.
예를 들어 twitter 앱을 설치하고 다음 마크업이 포함된 웹 페이지로 이동하면 바로 앱으로 이동합니다.
<!DOCTYPE html>
<html>
<head>
<title>iOS Automatic Deep Linking</title>
</head>
<body>
<iframe src="twitter://" width="0" height="0"></iframe>
<p>Website content.</p>
</body>
</html>
다음은 앱이 설치되지 않은 경우 앱 스토어로 리디렉션하는 보다 자세한 예입니다.
<!DOCTYPE html>
<html>
<head>
<title>iOS Automatic Deep Linking</title>
<script src='//code.jquery.com/jquery-1.11.2.min.js'></script>
<script src='//mobileesp.googlecode.com/svn/JavaScript/mdetect.js'></script>
<script>
(function ($, MobileEsp) {
// On document ready, redirect to the App on the App store.
$(function () {
if (typeof MobileEsp.DetectIos !== 'undefined' && MobileEsp.DetectIos()) {
// Add an iframe to twitter://, and then an iframe for the app store
// link. If the first fails to redirect to the Twitter app, the
// second will redirect to the app on the App Store. We use jQuery
// to add this after the document is fully loaded, so if the user
// comes back to the browser, they see the content they expect.
$('body').append('<iframe class="twitter-detect" src="twitter://" />')
.append('<iframe class="twitter-detect" src="itms-apps://itunes.com/apps/twitter" />');
}
});
})(jQuery, MobileEsp);
</script>
<style type="text/css">
.twitter-detect {
display: none;
}
</style>
</head>
<body>
<p>Website content.</p>
</body>
</html>
해결책을 제시하겠습니다.
흐림 및 포커스를 사용하여 부울 위치 맞추기 설정
//see if our window is active
window.isActive = true;
$(window).focus(function() { this.isActive = true; });
$(window).blur(function() { this.isActive = false; });
이와 같은 호출을 하는 jquery click 핸들러를 사용하여 링크를 바인드합니다.
function startMyApp(){
document.location = 'fb://';
setTimeout( function(){
if (window.isActive) {
document.location = 'http://facebook.com';
}
}, 1000);
}
앱이 열리면 창에 집중이 안 되고 타이머가 종료됩니다.그렇지 않으면 아무것도 얻지 못하고 일반적인 페이스북 URL을 로드합니다.
제가 알기로는 OS 전체를 이해시킬 수 없습니다.http:
+도메인 URL. 새 스킴만 등록할 수 있습니다(사용합니다).x-darkslide:
에서 앱이 정상적으로 모바일 사파리
다만, 앱이 인스톨 되어 있지 않은 경우는, 「아직도 여기?」라고 하는 표시가 되어 있는 경우는 대응하지 않으면 안 됩니다.iTunes에서 앱을 다운로드하려면 웹 페이지에서 이 링크를 클릭하십시오.
User-Agent를 확인하고 Mobile Safari의 경우 myprotocol:// URL을 열어 iPhone 앱을 열고 시도가 실패할 경우 Mobile iTunes를 열어 앱 다운로드에 사용합니다.
합리적인 접근 방식인 것 같습니다만, 두 번째 수단으로 모바일 ITU를 오픈할 수 있을 것 같지는 않습니다.둘 중 하나를 선택해야 할 것 같습니다. 앱으로 리다이렉트하거나 ITU로 리다이렉트합니다.
즉, my protocol://로 리다이렉트 할 때 앱이 통화 중이 아닌 경우, 다시 itunes로 리다이렉트 할 기회가 없습니다.
먼저 (iphone 최적화) 랜딩 페이지로 리다이렉트하여 사용자에게 앱을 클릭할 수 있는 옵션을 제공하거나 앱을 얻을 수 없는 경우 itunes로 이동할 수 있습니다.단, 사용자가 올바른 작업을 수행할 수 있도록 해야 합니다.(편집: 쿠키를 처음 설정해도 될까요?)
팝업 문제를 해결하기 위해 애플이 이 문제를 해결할 방법이 있다는 것을 알게 되었다.
실제로 이 링크를 클릭하면 응용 프로그램을 설치한 경우 해당 링크로 재루팅됩니다.그렇지 않은 경우 팝업 없이 웹 페이지로 리디렉션됩니다.
.document.hidden
생각할 수 있는 해결책
document.location = 'app://deep-link';
setInterval( function(){
if (!document.hidden) {
document.location = 'https://app.store.link';
}
}, 1000);
하지만 이것은 사파리에서는 작동하지 않는 것 같다.
언급URL : https://stackoverflow.com/questions/1108693/is-it-possible-to-register-a-httpdomain-based-url-scheme-for-iphone-apps-like
'source' 카테고리의 다른 글
ASP에서 HTML/이메일 템플릿을 설정할 수 있습니까?인터넷? (0) | 2023.04.22 |
---|---|
Excel에서는 각 행의 한 열에 있는 모든 값을 합산하고 다른 열은 특정 값입니다. (0) | 2023.04.22 |
NSUser Defaults 클리어 (0) | 2023.04.22 |
모든 Git 기록에서 문자열 검색 (0) | 2023.04.22 |
Chrome이 자동 완성="off"를 무시합니다. (0) | 2023.04.22 |