APP封装从一门开始
一门提供APP封装底层开发框架,一键在线APP封装,200+原生APP模块,2000+JS映射接口按需自助封装

h5封装的app怎么打开默认浏览器

在移动应用领域,原生应用和Hybrid应用已经成为主流。原生应用指的是使用操作系统提供的API来实现的应用,而Hybrid应用则是一种介于原生应用和Web应用之间的应用。在Hybrid应用中,常使用H5技术来实现应用的Web部分。

在Hybrid应用中,H5部分通常被封装在一个WebView中。其中WebView是Android平台和iOS平台上的一种控件,它可以加载显示Web页面,并在其中执行JavaScript脚本。在WebView中打开网页时,默认会使用应用中自带的浏览器,而并非是用户所选择的默认浏览器。因此,如何在Hybrid应用中打开用户所选择的默认浏览器呢?

解决方案如下:

1. Android平台上的解决方案

在Android平台上,可以通过修改WebView的属性来实现在默认浏览器中打开网页的功能。具体做法如下:

1. 在AndroidManifest.xml文件中添加以下代码:

```xml

android:name=".MainActivity"

android:theme="@style/AppTheme.NoActionBar">

```

上述代码中,添加的是该Activity的intent过滤器。意思是,该页面可以接收浏览器分享的链接,并且会打开该页面。

2. 在MainActivity中添加以下代码:

```java

@Override

public void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_main);

// 找到WebView控件

WebView webView = (WebView) findViewById(R.id.web_view);

// 适配5.0+系统,启用混合模式。

if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {

// 5.0+系统开启混合模式

webView.getSettings().setMixedContentMode(WebSettings.MIXED_CONTENT_ALWAYS_ALLOW);

}

// 打开页面,同时在默认浏览器中打开

webView.loadUrl("https://www.xxx.com");

webView.setWebViewClient(new WebViewClient() {

public boolean shouldOverrideUrlLoading(WebView view, String url) {

if (url != null) {

// 手动处理跳转页面

if (url.startsWith("http://") || url.startsWith("https://")) {

view.loadUrl(url);

return false;

} else {

// 其他跳转方式,使用默认浏览器打开

try {

Intent intent = new Intent(Intent.ACTION_VIEW);

intent.setData(Uri.parse(url));

startActivity(intent);

} catch (Exception e) {

e.printStackTrace();

}

}

return true;

}

return false;

}

});

}

```

上述代码中,在WebView加载网页时,使用了WebViewClient来监听网页加载事件,如果发现链接以http或https开头,则使用WebView自带的loadUrl方法来加载该网页;否则,使用指定的默认浏览器打开该链接。通过上述方法,即可实现在默认浏览器中打开页面的功能。

2. iOS平台上的解决方案

在iOS平台上,可以通过自定义NSURLProtocol来实现在默认浏览器中打开网页的功能。具体做法如下:

1. 在AppDelegate.m文件中添加以下代码:

```Objective-C

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {

[NSURLProtocol registerClass:[MyURLProtocol class]];

return YES;

}

```

上述代码中,MyURLProtocol是自定义的NSURLProtocol。该代码会在应用启动时注册该协议。

2. 在MyURLProtocol.m文件中进行如下实现:

```Objective-C

+(BOOL)canInitWithRequest:(NSURLRequest *)request {

return YES;

}

+ (NSURLRequest *)canonicalRequestForRequest:(NSURLRequest *)request {

return request;

}

// 该方法执行时,系统会自动使用默认的浏览器打开网页。

- (void)startLoading {

NSMutableURLRequest* request = (NSMutableURLRequest*)[self.request mutableCopy];

[[UIApplication sharedApplication] openURL:[request URL]];

[self.client URLProtocol:self didFailWithError:nil];

}

- (void)stopLoading {

}

```

上述代码中,canInitWithRequest方法和canonicalRequestForRequest方法用于处理请求。而startLoading方法,则是在请求开始时执行的方法。在这里,我们使用了UIApplication的openURL方法来打开该链接,从而使用了默认浏览器来加载网页。而stopLoading方法则是在请求结束时执行的方法。

综上所述,无论是在Android平台还是iOS平台,都可以通过一些技巧来实现在默认浏览器中打开网页的功能。这种方式极其方便,实现简单,值得开发者们的尝试。


相关知识:
用h5制作智能家居系统app
智能家居系统已经成为现代家庭的必备。它可以让家庭生活更便捷、更舒适,同时也能提高家庭的安全性。随着智能家居市场的发展,越来越多的人开始关注如何制作智能家居系统app。本文将介绍如何使用h5技术来制作智能家居系统app。智能家居系统app的功能需求在制作智能
2023-05-26
目前做互联网app和h5产品
近年来,随着智能化设备的快速普及和移动互联网的飞速发展,移动应用程序(App)和H5网页已成为人们日常生活中不可或缺的一部分。作为现代信息技术的重要组成部分,它们已经成为了影响人们使用互联网的主要途径之一。一、移动应用程序(App)移动应用程序是指为移动设
2023-05-26
基于h5开发的移动app开发
基于H5开发的移动App,是指使用HTML5、CSS3、JavaScript等Web三大前端技术,通过一种类似封装的方式,实现将Web App打包成一个可下载、安装的Android或iOS App。H5 App不仅可以实现类似Native App的功能,而
2023-05-26
东莞h5开发app
在互联网技术不断更新发展的今天,越来越多的人开始接触和使用H5技术,而且H5技术在移动互联网应用开发领域中也得到了广泛的应用。本文将详细介绍东莞H5开发App的原理和流程。一、H5技术介绍H5技术是基于HTML、CSS和JS技术的一种开发模式,H5页面底层
2023-05-25
把h5封装app
随着移动互联网的快速发展,越来越多的企业和个人开始关注移动应用开发。但是,由于开发成本和技术要求的高度,普通人很难下手制作自己的应用。但是,随着HTML5技术的发展,做一个基于网页的应用变得越来越容易。那么如何将基于HTML5的网页应用封装成原生应用呢?这
2023-05-25
北京h5开发app
随着移动互联网的发展,越来越多的企业开始将自己的业务拓展到移动端。前端页面的开发也从最初的PC端网页发展到了移动端HTML5页面。而移动端的一款APP最终也需要一个主界面,而这个主界面的开发就离不开HTML5的应用。本文将介绍北京h5开发app的原理和详细
2023-05-25
常见的h5页面制作app有哪些
HTML5(H5)技术已经被广泛应用于移动应用程序的开发中。基于HTML5的移动应用程序与原生应用程序相比,具有跨平台性、开发成本低、开发周期短、维护简单等优点。开发人员可以使用现有的Web技术来创建无需安装的Web应用程序和安装式应用程序。下面是一些常见
2023-05-25
h5小游戏制作app
HTML5小游戏制作APP的原理是基于Web技术,采用HTML、CSS和JavaScript三种开发语言,通过浏览器引擎渲染和解析来完成游戏的展现和操作。HTML5小游戏优势在于其开发的轻便快捷,对于用户来说也不需要进行软件的安装,只需要在浏览器中访问就可
2023-05-25
h5网页做成app
近年来,随着智能手机的普及以及移动互联网的发展,移动应用变得越来越流行。而对于一些小型企业或者个人网站来说,开发一款移动应用可能比较困难或者成本较高。因此,将网页转化为移动应用成为了一种较为流行的解决方案。本文将详细介绍将H5网页制作成移动应用的原理及方法
2023-05-25
h5和原生混合开发app需要学习什么
H5和原生混合开发App是一种常见的App开发方式,可以快速地构建移动应用程序并且在多个平台上进行部署。本文将介绍H5和原生混合开发App需要学习的基础知识。一、H5和原生混合开发App的介绍H5和原生混合开发App是指将HTML5页面和原生应用程序混合在
2023-05-25
h5打包app能调蓝牙吗
H5打包APP能够调用蓝牙功能,主要通过Hybrid技术实现。Hybrid技术是指将Web技术和Native技术结合起来,使得Web应用能够通过Native接口访问设备的硬件等功能。这种技术可以让开发者使用Web技术进行应用开发,同时也可以直接访问设备的硬
2023-05-25
h5 app开发 框架
H5 App是一种基于HTML5技术的跨平台移动应用开发方式,它可以实现类似于原生App的交互效果和功能,而且具有跨平台的优势,适用于多种不同操作系统和设备,如安卓、IOS等。那么H5 App的开发需要哪些框架呢?下面,让我们一起来详细了解一下。一、Rea
2023-05-25
©2015-2021 一门APP yimenapp.com  川公网安备 51019002001185号 蜀ICP备17005078号-3