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有哪些
H5软件App是利用Html5技术,使用Web前端技术开发的一种基于浏览器的移动应用。相较于传统的原生应用,H5应用具有开发周期短、成本低、跨平台兼容等优点。下面是H5软件App制作的原理以及详细介绍。一、H5应用原理H5应用是基于Web前端技术开发的一种
2023-05-26
有哪些做h5的app
H5是一种运行在Web浏览器中的超文本标记语言。它对于Web开发人员来说非常重要,因为它可以帮助他们在不同的设备和平台上创建响应式Web应用程序。因此,许多应用程序和工具被开发出来,以帮助开发人员更轻松地创建H5应用程序。以下是一些用于创建H5应用程序的应
2023-05-26
网站h5打包app
H5技术是指使用HTML、CSS和JavaScript等Web标准技术来构建网站或应用的基础技术。而H5打包App是指将H5技术应用到手机App开发中,通过将网页封装成一个App,让用户可以方便地在手机上使用。下面是一些常用的H5打包App的工具及原理介绍
2023-05-26
无锡h5开发app
H5开发App是一种基于HTML5的跨平台移动应用开发技术,可以实现一次开发,多端运行。在无锡,H5开发App已经得到了广泛应用,具体详细介绍如下。1. H5开发App的基本原理HTML5是一种新的标准,它的特点是支持各种设备,包括电脑、手机和平板电脑等。
2023-05-26
uniapp 开发app 就是套h5吗
UniApp 是一款由DCloud公司推出的开发框架,可以同时基于同一套代码,支持编译到iOS、Android、H5、小程序、快应用等多个平台,实现跨平台开发。UniApp的开发原理:UniApp并不是基于H5技术来开发App,而是利用多个平台原生的Web
2023-05-25
h5用什么app做
H5,即HTML5,是目前最常用的网页开发技术之一。它具有功能强大,兼容性好,开发效率高等优点。许多人都想学习H5技术并开始自己的H5制作,但往往会遇到一些问题,例如不知道该用哪个软件来完成H5制作。下面我将为大家介绍几种常用的用于H5制作的软件。1. H
2023-05-25
h5页面做成app
随着移动互联网的不断发展,越来越多的网站和应用开始向移动端转移。而为了更好地服务于用户,很多网站和应用会提供相应的移动端应用程序。但是,开发移动应用需要掌握一定的移动开发技术,而且开发成本也较高。对于一些小型企业或非专业开发者而言,开发移动应用并不容易。因
2023-05-25
h5网站和app开发工具
HTML5 是用于网页设计和开发的一种标准化语言,它是 HTML 的第五个版本,被广泛应用于 Web 应用、移动应用以及电视应用等领域。而 app 开发则是构建移动应用的必要过程,通过特定的工具和技术,开发者可以构建出功能丰富的移动应用,支持跨平台开发,降
2023-05-25
h5微信app开发
随着移动互联网发展迅速,各种移动端应用井喷式增长。微信应用是其中最为常见和流行的一种。H5微信App开发是一种基于H5技术和微信开放平台的应用开发方式,可以在微信中直接运行,不需要下载安装即可使用。H5技术是一种通过HTML、CSS和JavaScript来
2023-05-25
h5快速开发app
H5快速开发APP是一种基于HTML5技术的应用程序开发方法,它可以使开发者利用现有的Web技术,快速地构建出具有APP功能的应用程序。相比于传统的原生应用程序开发方式,H5快速开发APP具有简单、快速、低成本等优点。下面我们来详细介绍一下H5快速开发AP
2023-05-25
h5开发app用的ui框架
在移动应用开发过程中,UI框架是关键性的一环。其中,H5开发App也需要选用合适的UI框架。下面,我将为你详细介绍h5开发App用的UI框架,以及其原理。一、什么是H5开发App?H5,指的是HTML5。HTML5语言是最近几年迅速发展的一种Web技术,可
2023-05-25
h5 app开发技术协议
H5 APP开发技术指的是将HTML5等Web前端技术整合到APP开发中,以达到快速开发、部署、发布App的目的。这种技术可以让开发者用Web的方式快速构建出一个类似于原生App的应用程序,并且可以跨平台运行在IOS、Android等多个平台上,支持快速迭
2023-05-25
©2015-2021 一门APP yimenapp.com  川公网安备 51019002001185号 蜀ICP备17005078号-3