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成为了一种可行的发展模式。H5 App不仅可以有效地降低开发成本,还可以跨越终端限制,使得应用能够被更多的用户所使用,因此在近几年中受到了越来越多的开
2023-05-26
怎么开发一个app能够调用的h5页面
在移动开发中,H5与Native是两个不同的技术方向,H5是用HTML/CSS/JS技术来写web页面,Native是用语言比如Java/Objective-C来写Native页面,两者之间主要的差别在于体验、性能、成本等方面。但是,有时候我们需要在Nat
2023-05-26
免费h5制作app平台
随着智能手机和平板电脑的普及,移动应用程序已成为人们生活中不可或缺的一部分。然而,创建一个动态、交互和高品质的应用程序需要大量的时间和技术知识,这对于普通用户来说是很困难的。因此,出现了许多免费的H5制作App平台,让普通用户可以快速和简单地创建自己的应用
2023-05-26
可以免费做h5的app
H5是一种轻量级的网页开发语言,在互联网领域得到了广泛应用。由于它具有易于学习、便捷部署、快速迭代等特点,成为了移动端开发的热门选择。因此,开发出一款免费的H5 App工具对于初学者和中小企业来说非常有帮助。首先,我们需要了解H5 App是怎么工作的。H5
2023-05-26
h5做软件app有哪些
随着移动互联网时代的到来,越来越多的公司和个人都希望能够开发自己的App,以在竞争激烈的市场中获取更多的用户和利益。而HTML5技术的出现,使得开发者可以使用Web技术(HTML、CSS和JavaScript)开发跨平台的移动应用程序,无需编写多个版本的代
2023-05-25
h5页面制作软件app代码
H5页面制作软件app是一种可以轻松制作H5网页的工具,开发者可以在其中简单地使用图形化界面来设计H5页面,而不需要编写代码。下面介绍H5页面制作软件app的原理和详细介绍。一、原理H5页面制作软件app的原理就是通过一些预设的模板和组件,用户可以在其中自
2023-05-25
h5网站打包封装app
如果你有一个H5网站,希望将其打包成一个APP,可以使用打包封装的解决方案。打包封装的解决方案允许你将你的H5网站转换为一个可安装的APP,并交付给您的用户。下面是如何使用HBuilder进行打包封装的步骤:步骤一:在HBuilder上创建一个APP项目首
2023-05-25
h5如何制作app
H5(HTML5)是一种用于创建网络内容的语言,由于其轻量化、可定制、易于开发、易于维护和可扩展,嵌入移动应用程序中已经成为了一种流行趋势。制作 App 的基本思路是将手机浏览器中的 H5 网页,以一种特殊的形式进行打包,使得它能够在手机端独立运行,并且拥
2023-05-25
h5结合原生开发app
随着移动设备的流行,越来越多的企业开始将h5结合原生开发app,以提供更好的用户体验和功能。本文将深入介绍h5和原生app开发的结合原理、优点和关键技术。一、结合原理h5(HTML5)和原生app开发的结合,其原理是将h5页面包装在原生应用程序中,通过原生
2023-05-25
h5开发的app怎么接支付宝
在h5开发中,我们常常需要对接支付宝支付功能。接口是一种实现不同系统之间协同工作的桥梁。接口负责根据业务需求实现连接两个或多个不同的应用程序的方法。接收支付宝支付需要遵循以下步骤:1. 注册支付宝开发者帐号,并开通产品收款应用2. 设置应用的密钥和登录密码
2023-05-25
h5可以做app吗
HTML5技术是构建Web应用的核心技术之一,它可以帮助开发者在多个平台上开发高质量的Web应用程序。而关于H5能否用于开发App的话题,一直以来都备受关注。事实上,答案是可以的,而且越来越多的企业和开发者正在使用HTML5技术来开发原生应用程序。H5技术
2023-05-25
h5tv版app开发
H5TV版App开发出现的主要原因是为了解决传统App开发的复杂性和不易维护的问题。它基于HTML5、CSS3和JavaScript等Web技术开发,具有跨平台,可扩展,易于维护等优点。一、H5TV版App的原理H5TV版App的开发是基于一种叫做Hybr
2023-05-25
©2015-2021 一门APP yimenapp.com  川公网安备 51019002001185号 蜀ICP备17005078号-3