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是一种基于微信公众号开发的互动游戏,通过抽奖的方式让参与者有机会获得一些奖品。该应用的原理是利用微信公众号的JS-SDK技术,用Web开发技术实现互动游戏的开发。下面我将详细介绍一下微信H5幸运盒子App的开发原理。微信公众号JS-S
2023-05-26
网页h5生成原生app
随着移动互联网的发展,越来越多的企业和个人开始关注移动应用开发,希望能够通过移动应用来达到更好的品牌推广和用户体验。但是传统的原生应用开发需要掌握多种技术,开发成本较高且周期较长。因此,一些新型的应用开发方式逐渐得到了广泛应用。其中,网页h5生成原生app
2023-05-26
微信h5制作app哪款好
随着移动互联网的发展,越来越多的企业开始注重移动端的应用,尤其是APP。但是开发APP需要耗费大量的时间和人员,而且成本也比较高。所以很多公司开始借助微信H5制作工具来实现APP的制作。本文将介绍微信H5制作APP的原理以及几款比较好用的工具。一、微信H5
2023-05-26
免费h5制作app大全下载安装
随着移动互联网的发展,越来越多的人开始使用移动设备来进行各种活动。因此,移动应用程序的需求也越来越大,而简单的应用程序也需要收费。所以了解免费的H5制作App方法和工具十分重要。在本文中,我将介绍一些免费的H5制作App的方法和工具。H5是一种网页开发技术
2023-05-26
vue开发移动端app与h5
Vue是一种用于构建用户界面的渐进式框架,它非常适合于开发移动端App和H5。Vue可以将代码与UI组件分离,使得我们可以更容易地对组件进行重用。在Vue中,可以将组件写成单独的文件来进行管理和维护。这使得Vue在移动端App和H5开发中使用非常方便。在移
2023-05-25
h5制作支付宝app
在本文中,我将详细介绍如何使用 HTML5 构建支付宝应用程序。HTML5 是一种使用标准 Web 技术构建应用程序的方法,如 HTML、CSS、JavaScript 等。使用 HTML5 等 Web 技术,可以快速轻松地开发应用程序,同时还可以进行跨平台
2023-05-25
h5怎么生成app
HTML5是一种网络应用程序标准,包括HTML、CSS和JavaScript,可以用来构建跨平台的Web应用程序。许多开发人员利用HTML5编写Web应用程序,但是如何将这些Web应用转换成原生应用程序呢?本文将介绍如何使用HTML5生成原生应用程序。We
2023-05-25
h5开发和原生app
H5开发和原生App开发是两种常见的移动应用程序开发方式。H5开发指的是使用HTML5,CSS和JavaScript等Web技术进行开发,而原生App开发指的是使用特定平台的一组编程语言和工具进行开发,如ios (Objective-C/Swift) 和A
2023-05-25
h5开发app注册登录
随着移动互联网的快速发展,越来越多的企业开始关注和使用移动端应用程序来开展业务,能够提供更加便捷的服务同时获得更多的用户流量。在这样的大背景下,越来越多的开发者开始关注将web应用程序转化为APP的问题。H5开发APP是目前非常流行的一种方式,可以让开发者
2023-05-25
h5混合开发app常用代码
H5混合开发是一种将H5页面嵌入原生App中的开发方式。相比于纯原生开发,H5混合开发有着快速开发、跨平台、易维护等优点,已经成为App开发的常用方式。以下是H5混合开发常用的代码及其原理或详细介绍。1. WebView控件WebView是H5混合开发的核
2023-05-25
h5打包app源文件
H5打包App源文件的原理是将H5网页通过特定的方式包装成APP,使其可以在移动设备上以原生APP的形式运行。这种打包方式既可以实现在移动端以原生APP的方式展示网页,也可以为企业提供企业级APP轻松快速的应用开发解决方案。主要步骤如下:1. 准备工作首先
2023-05-25
h5 web app开发
HTML5 Web App是一种基于HTML5、JavaScript和CSS3实现的Web应用程序。HTML5 Web App不需要在应用商店下载,也不需要安装和更新,只需要通过浏览器访问即可。下面将对HTML5 Web App的原理和详细介绍进行阐述。一
2023-05-25
©2015-2021 一门APP yimenapp.com  川公网安备 51019002001185号 蜀ICP备17005078号-3