本文介绍从web页面打开iOS app的方法
<!--more-->
从web页面打开app是一个常见场景,大致上有2种做法
利用Safari原生Banner
只需要在html中加入一段meta,即可在Safari中显示一个Banner。如果未安装此app,会跳转到app store的下载页面,否则会直接打开应用
效果图:
html代码如下:
<meta name='apple-itunes-app' content='app-id=你的应用的app-id'>
另外我在简书的网站上,看到代码是这样写的:
<meta name="apple-itunes-app" content="app-id=888237539, app-argument=jianshu://notes/2283513">
特别的地方在于,多了一个app-argument参数,可能可以传递到app的这个方法里进行处理:
- (BOOL)application:(UIApplication *)app openURL:(NSURL *)url options:(NSDictionary<NSString*, id> *)options
使用自定义链接
第一种方法的好处是方便,但是缺点是样式是固定的,不能自定义,所以更好的办法是采用自定义链接。代码如下:
<a href="https://itunes.apple.com/cn/app/id995195037" id="openApp">打开应用</a>
<script type="text/javascript">
document.getElementById('openApp').onclick = function(e){
var ifr = document.createElement('iframe');
ifr.src = 'com.yilos.nailstar://topic/abcdefg';
ifr.style.display = 'none';
document.body.appendChild(ifr);
window.setTimeout(function(){
document.body.removeChild(ifr);
},3000)
};
</script>
本质上是发起了一个请求:
com.yilos.nailstar:
这个请求会在iOS系统中查找对应的url schema,然后打开此应用,同样会进入以下方法:
- (BOOL)application:(UIApplication *)app openURL:(NSURL *)url options:(NSDictionary<NSString*, id> *)options
所以有机会对自定义的参数进行处理
比较巧妙的地方在于,打开app的行为,会阻止a链接的默认跳转行为;而如果打开失败,则会进入app store的下载页面
简书的代码是利用同样的原理:
if (/iphone|ipad|ipod/.test(ua)) {
// in iOS
if (ua.match(/MicroMessenger/i) || ua.match(/weibo/i)){
Maleskine.showWeixinHelp();
}else if (ua.match(/MQQBrowser/i) || ua.match(/QQ/i)) {
Maleskine.showQQHelp();
} else {
window.location = "jianshu://p/12345678";
window.setTimeout(function() {
window.location = "https://itunes.apple.com/cn/app/jian-shu/id888237539?ls=1&mt=8";
}, 400);
}
}
也是先尝试打开app,如果打开失败,就跳转到app store下载页面
微信的兼容性问题
微信做了特殊处理,在微信中打开的web页,既不能跳转到app,也不能跳转到app store
所以一般的做法是提示用户在Safari中打开
<script type="text/javascript">
$(function () {
$('pre.prettyprint code').each(function () {
var lines = $(this).text().split('\n').length;
var $numbering = $('<ul/>').addClass('pre-numbering').hide();
$(this).addClass('has-numbering').parent().append($numbering);
for (i = 1; i <= lines; i++) {
$numbering.append($('<li/>').text(i));
};
$numbering.fadeIn(1700);
});
});
</script>
分享到:
相关推荐
在压缩包中的"ios"文件可能是相关的示例代码、文档或资源,对于学习和理解如何利用HTML5构建Web版iOS应用非常有帮助。通过深入研究这些文件,开发者可以更好地掌握如何创建具有iOS风格界面和交互体验的Web应用。
这种技术主要基于Safari浏览器,使得用户无需每次都打开浏览器输入网址,而是直接从手机桌面启动Web应用。 创建iOS Web Clip的过程涉及到以下几个关键知识点: 1. **HTML5 Web App Manifest**: 为了让Web Clip有更...
### iOS应用开发入门详解 #### 一、iOS应用开发概述 在移动互联网时代,iOS作为苹果公司的操作系统之一,在全球范围内拥有庞大的用户基础。对于开发者来说,掌握iOS应用开发技术不仅能够帮助他们创建出高质量的...
在iOS应用开发中,创建一个类似Chrome浏览器的多页签视图是一项常见的需求。这个源码项目名为"ios应用源码之类似chrome浏览器的多页签视图 2018128",旨在提供一种实现方式,帮助开发者理解和构建这种功能。下面将...
此外,Web页面还可以通过API与Unity引擎通信,实现游戏逻辑或者应用功能的扩展。 在Unity中嵌入Web页面的方法主要有两种: 1. 使用Unity的内置WebView组件:Unity 2018.3版本之后引入了一个内置的WebView组件,...
这个压缩包文件“IOS应用源码——一个功能还算完整的浏览器.zip”显然包含了iOS平台上一个名为“TSMiniWebBrowser”的小型浏览器应用的源代码。这个应用可能由Tonisalae开发,版本号为e8373e2。下面将详细讨论iOS...
首先,当Unity3D应用运行在Web Player上时,使用`Application.OpenURL()`函数尝试打开一个新的网页链接,会发现它并不是像预期那样在新标签页或窗口中打开,而是试图在当前Web Player窗口内加载新的页面,覆盖原有的...
Safari调试iOS App Web页面的步骤 Safari浏览器是 macOS 和 iOS 系统的默认浏览器,同时它也提供了强大的开发者工具,可以帮助开发者调试和优化 Web 应用程序,包括 iOS App 中的 Web 页面。在移动端开发过程中,很...
在本压缩包“IOS应用源码Demo-类似Chrome浏览器的多页签视图-毕设学习.zip”中,我们可以找到一个iOS应用的源代码示例,这个应用模仿了Google Chrome浏览器的多页签视图功能,非常适合那些正在进行iOS毕业设计或者...
9. **性能优化**:为了提供流畅的浏览体验,iOS浏览器通常会进行内存管理和页面预加载,确保即使打开多个标签页,应用仍能保持稳定运行。 10. **安全与防护**:iOS系统和浏览器内置的安全机制会检测并阻止恶意网站...
Webview是iOS SDK提供的一种组件,它能够在一个iOS应用内部展示网页内容。开发者可以使用UIWebView或WKWebView(自iOS 8引入,性能更优)来加载HTML、CSS和JavaScript代码,为用户提供类似于浏览器的体验,但又可以...
在页面加载方面,源码可能使用`WKWebView`来渲染网页内容,因为它是Apple推荐的Web内容展示控件,相比老的`UIWebView`,它提供了更好的性能和内存管理。`WKWebView`允许开发者通过`WKWebViewConfiguration`设置各种...
总的来说,通过Chrome Developer Tools进行远程调试,Swift开发者可以充分利用Web开发的便利性,提高对原生iOS应用的调试效率,同时减少了在模拟器和真机间切换的麻烦。理解并掌握这一工具,对于提升开发者的生产力...
ipa文件是iOS应用程序的打包格式,包含应用程序的二进制文件、资源文件以及Info.plist等元数据。而itms-services是一种HTTP协议,允许iOS设备通过Safari浏览器直接下载并安装ipa文件,无需通过App Store。这种方式常...
通过这个项目,开发者可以学习如何在iOS应用中实现类似“今天头条”那样的网页浏览体验,包括加载新闻文章、实现页面滑动效果、以及可能的广告拦截和用户登录等功能。 总之,WKWebView是iOS开发中的重要工具,用于...
在iOS和JavaScript交互的场景中,开发者经常需要在原生应用和Web页面之间进行方法调用,以便充分利用两者的优势。这个“iOS和Js互调的简单例子”将为我们揭示这一技术的核心原理和实现方式。 首先,我们要理解的是...
在iOS应用开发中,混合开发模式常常被用来融合原生平台的能力与Web技术的优势,以实现更高效、灵活的开发流程。"iOS与HTML的嵌入式开发"这个项目就是一个典型的例子,它利用UICollectionView和UIScrollView来展示...
"iOS生成桌面icon"是指为iOS应用创建在用户设备主屏幕上显示的个性化图标的过程。AppWebClip-master.zip文件包含的资源和代码可能是一个帮助开发者快速生成iOS桌面快捷方式(Web Clip)的工具,它可以模拟真实应用...
在iOS开发中,将原生应用与HTML5(H5)页面结合,可以实现丰富的交互效果,同时利用原生应用的性能优势。...通过以上步骤,你可以轻松地在iOS应用中展示和操作本地H5页面,实现原生应用与Web技术的无缝融合。
常常有这样的场景,咱们开发出来的APP需要进行推广,比如在页面顶部来一张大Banner图片,亦或一张二维码。但往往我们都是直接给推广图片加了一个下载链接(App Store中的)。所以咱们来模拟一下用户的操作步骤: 1、...