我希望iOS能够在我的应用程序安装在手机上时使用我的应用程序打开我的域中的URL(例如http://martijnthe.nl),如果不是,则使用Mobile Safari.
我读过可以为此创建一个唯一的协议后缀并将其注册到Info.plist中,但是如果未安装该应用程序,Mobile Safari将会出错.
什么是解决方法?
一个想法:
1)使用在任何桌面浏览器中打开的http:// URL,并通过浏览器呈现服务
2)检查用户代理,如果是移动Safari,打开myprotocol:// URL(尝试)打开iPhone应用程序并打开移动iTunes以下载应用程序,以防尝试失败
不确定这是否有效...建议?谢谢!
是否可以建立如下链接:
<a href="anton://useful_info_for_anton_app">click me!</a>
Run Code Online (Sandbox Code Playgroud)
导致我的Anton应用程序启动?
我知道这适用于具有市场协议的Android Market应用程序,但是可以与其他应用程序类似吗?
以下是启动Android电子市场的链接示例:
<a href="market://search?q=pname:com.nytimes.android">click me!</a>
Run Code Online (Sandbox Code Playgroud)
更新:
我接受eldarerat提供的答案很有用,但我只想提一下,我对<intent-filter>标签的子元素的顺序有些麻烦.我建议您只<intent-filter>使用该标签中的新子元素制作另一个,以避免我遇到的问题.例如我AndroidManifest.xml看起来像这样:
<activity android:name=".AntonWorld"
android:label="@string/app_name">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
<intent-filter>
<data android:scheme="anton" />
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.BROWSABLE" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
</activity>
Run Code Online (Sandbox Code Playgroud) 我已经知道如何从safari启动应用程序,但是可以在启动之前检查应用程序是否已安装?如果iPhone上当前没有安装该应用,我正在考虑启动应用商店.
在Javascript中,我需要在加载URL并覆盖默认行为时收到通知.例如,在iOS Safari上执行以下操作...
window.location = 'http://pageDoesNotExist.badFormatting';
Run Code Online (Sandbox Code Playgroud)
...会弹出此警告信息......

我想为这样的错误附加一个监听器并做一些事情,而不是显示一个丑陋的警报框.
当用户点击按钮时,我需要启动我的应用程序(如果已安装),否则我需要打开App Store才能下载我的应用程序.该接受的解决方案是:
// Attempt to open app
window.location = 'myApp://';
// If app fails to open, will open app store 0.5 seconds later
window.setTimeout(
function() {
window.location = 'http://itunes.apple.com/myAppId';
},
500
);
Run Code Online (Sandbox Code Playgroud)
这里的问题是,window.location当未安装应用程序时,第一个打开丑陋的警告框.然后代码将回退到App Store.当用户从App Store返回到Safari时,丑陋的警报框仍然存在.据我所知window.onerror,不会在移动Safari上启动.
我需要在遵循短信或电子邮件链接时启动应用程序.我已经阅读过关于URL方案的内容,并且已经测试了它并且它可以工作,但问题是如果设备上没有安装应用程序,则不会发生任何事情.如果没有安装应用程序我需要一种打开网址的方法,但我找不到这样做的方法......
任何的想法?
谢谢
我无法弄清楚如何从iOS 7+中的本机应用程序切换到Safari.我已经习惯了UIApplication.sharedApplication.openURL(),但是这会打开一个新标签.我想在不打开新标签的情况下将用户返回到他/她之前查看的当前页面.我找到了这个 SO帖子,但它已经有几年了,所以我希望自那时起事情发生了变化.
这是我想象的工作流程:
谷歌以某种方式使用谷歌地图应用程序完成了这项工作 如果您在Safari上的google.com上搜索地址,则可以点按搜索结果中显示的地图,它会打开地图应用.地图应用程序的顶部将是一个"返回Safari"栏,您可以点按.点击它后,您将返回Safari而不加载其他选项卡.我似乎无法找到关于谷歌如何做到这一点的任何事情.如果我可以在我的应用程序中复制该行为,那就可以了.
任何帮助将不胜感激!
我正在使用pic2shop为移动网络应用程序提供条形码扫描.对于iOS,可以检查[canOpenURL]以查看特定方案是否有效(tel://,pic2shop://).移动浏览器(iOS,Android等)中是否有提供相同功能的东西?
我想使用Twitter应用程序从我的网络应用程序发送推文,而不是在安装推特客户端时使用推特按钮.
如果我在安装了Twitter应用程序的iPhone或Mac上,则在将Web应用程序重定向到"twitter://"URL时会打开此应用程序.(见http://handleopenurl.com/scheme/twitter)
但是,如果我只想在未安装Twitter应用程序的地方显示Twitter按钮,我该如何检查?假设我有这个代码.twitter_app_installed()应该如何?有没有办法检查是否window.location="twitter://...";不起作用?
<div class="twitter-button"><a href="https://twitter.com/share" class="twitter-share-button" data-url="http://google.com" data-text="Hello World">Tweet</a></div>
<div class="twitter-app-button"><a href="twitter://post?message=Hello%20World%20http://google.com">Tweet</a></div>
<script>
function twitter_app_installed() { /* check if window.location="twitter://"; works */}
$(document).ready(function() {
if (twitter_app_installed()) $('.twitter-app-button').show();
else $('.twitter-button').show();
});
</script>
Run Code Online (Sandbox Code Playgroud)
另外:有没有正确的方法将URL添加到twitter://方案?
我正在创建一个应用程序,用户可以通过相互发送电子邮件来共享数据.在这封邮件中有一个指向我的应用程序的链接(我为我的应用程序创建了一个URL方案)但是,如果用户的iPhone上没有我的应用程序,那么当他点击链接时,没有任何反应.
我的问题:如果应用程序安装在用户的iPhone上,如果未安装此应用程序,则启动Appstore或网站,如何启动应用程序?
谢谢
是否有类似 Modernizr 的方法来检测客户端对 uri 方案的支持,例如
<a href="sms:1-408-555-1212">New SMS Message</a>
或
<a href="whatsapp://send?text=Foo">New WhatsApp Message</a>
为了有条件地显示此类链接?
可能相关
ios ×5
javascript ×3
url-scheme ×3
iphone ×2
objective-c ×2
android ×1
app-store ×1
browser ×1
custom-url ×1
html ×1
modal-dialog ×1
modernizr ×1
native ×1
overriding ×1
safari ×1
tabs ×1
twitter ×1
uri-scheme ×1
url ×1