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中调用微信进行分享或打开微信支付等功能,需要先将用户引导至微信端。以下是跳转到微信的原理和详细介绍。首先,需要调用微信的URL Scheme来跳转至微信客户端。URL Scheme是一种用于定位应用程序的URL,它以应用程
2023-05-26
手机app能制作h5吗
随着智能手机的普及,移动互联网成为了人们生活工作的重要组成部分。H5技术得到了越来越广泛的应用,成为移动端营销和传播的重要方式。那么,手机APP能否制作H5呢?答案是肯定的。本文将详细介绍手机APP制作H5的原理和方法。一、H5的基本概念H5是指基于HTM
2023-05-26
手机h5制作app
手机H5制作App的前提是要了解H5技术和App开发的基本原理。HTML5是一种用于创建Web应用程序的一种标准的技术,具备跨平台,跨终端,同时Web页面渲染速度快,交互性好,耗费资源少的特点,已经被广泛地应用于互联网行业。而App开发则需要借助Nativ
2023-05-26
宁波h5开发app
H5开发是基于HTML5技术的一种Web前端开发模式,它可以在移动端中实现原生应用的功能,如快速响应、离线缓存、数据交互和动效等。相比于原生应用开发,H5开发可以节省开发时间和成本,且程序可轻松迭代和更新。通过开发H5应用,我们可以快速开发出一个跨平台的应
2023-05-26
webpack怎么打包到h5和app
Webpack是一个开源的JavaScript模块打包工具。它的主要目的是将打包文件最小化,达到更快的加载速度。其中H5(Web)和App分别对应着web页面和移动应用,下面将分别介绍如何使用Webpack打包到H5和App中。一、打包到H5Webpack
2023-05-25
h5制作页面的app
近年来,移动互联网的飞速发展,使得人们的生活方式日益多元化。为了更好地满足消费者的需求,各种类型的移动应用程序被不断推出。其中,H5制作页面的APP在这其中扮演着重要的角色。本文将就H5制作页面的APP的原理和详细介绍进行阐述。 一、H5制作页面的APP原
2023-05-25
h5生成app软件
H5生成App软件是一种将H5网页应用打包成App应用的技术,也称为混合开发。相较于原生App开发,它具有开发时间短、成本低、跨平台等优势。下面将从原理和详细步骤介绍H5生成App软件。一、原理H5生成App软件的原理是将H5网页应用嵌入到一个本地的Web
2023-05-25
h5开发app实例
随着移动互联网的快速发展,越来越多的应用程序开始从基于原生代码的应用转换为基于Web技术的Hybrid App(混合应用)。Hybrid App既有原生App的良好用户体验,也具备Web App的跨平台特性,成为越来越多企业选择的应用开发方式。H5开发Ap
2023-05-25
h5开发app用什么工具好
H5开发是一种运用HTML5、CSS3、JavaScript等技术进行开发的Web应用程序。相对于原生App,它具有跨平台、可分享、开发成本低等优点。在日益普及的移动互联网时代,H5开发也变得越来越流行。本文将会介绍H5开发App常用的工具和原理,帮助大家
2023-05-25
h5打包为app工具
H5是一种基于HTML5、CSS3、JavaScript和其他前端技术的开发语言,目前在各个领域得到了广泛的应用,尤其在移动应用开发方面,可以通过将H5打包为APP的方式,快速部署到移动应用市场,给用户提供更好的体验。下面将介绍H5打包为APP的原理和实现
2023-05-25
app怎么做成h5
对于很多业务应用来说,app基本上是必须的。但是开发app需要写很多的代码来适配各个不同的平台和设备,而且更新和维护都是非常复杂的。所以现在越来越多的开发者和企业将目光转向了h5开发。那么如何将app做成h5呢?下面我们来详细介绍。一、什么是h5H5全称H
2023-05-25
app可以用h5制作吗
App可以使用H5制作,原因是手机设备的普及以及互联网技术的发展,已经使得手机上的应用程序(App)已经成为日常生活中不可或缺的一部分。伴随着移动互联网的兴起,越来越多的人使用手机来上网与获取信息,而App也成为了人们较爱用的应用程序。App的本质是一个软
2023-05-25
©2015-2021 一门APP yimenapp.com  川公网安备 51019002001185号 蜀ICP备17005078号-3