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 应用开发框架,其实就是一款便于开发人员创建原生 H5 应用的工具,可以让开发者使用 H5 技术开发出原生应用。这些框架的本质是让开发者利用 HTML、CSS 和 JavaScript 编写出的页面,以原生应用的形式发布到各大应用商店,并在各大平
2023-05-26
免费制作海报或h5的app
免费制作海报或H5的APP应用广泛,大多数都是通过收集大量模板和素材,然后用户选择或自定义制作的过程,实现快速高效制作。这里介绍两种常见的免费APP:「海报工厂」和「ULIKE」。这两款APP都支持海报和H5的制作,且都可以在App Store或Googl
2023-05-26
h5制作游戏app
HTML5 技术能够用于制作各种游戏,包括简单的拼图游戏和高度互动的多人在线角色扮演游戏,甚至可以作为应用程序开发平台。HTML5 游戏移植可以将游戏开发商从专用的游戏开发平台束缚中解脱出来,因为这些平台需要把游戏编译为平台特定的代码,如 Flash、Ja
2023-05-25
h5制作app源码
在移动互联网时代,应用程序(App)成为人们必不可少的工具,许多企业和开发者都希望能为自己的品牌或个人开发一款独特的应用程序。然而,App的开发需要掌握各种编程技能、有着高昂的开发成本和周期,并且只能在特定平台上运行,这使得许多人望尘莫及。为了解决这些问题
2023-05-25
h5模式的app定制开发
H5模式的APP是指采用H5技术编写的App,其核心是使用webview作为容器,将H5页面嵌入其中,在实现APP的基本功能的同时,实现了HTML5的各种功能和交互特效。H5模式的APP在开发过程中,相较于Native App便捷快速,具有更好的兼容性,更
2023-05-25
h5开发app规划
HTML5技术的日渐成熟,使得越来越多的开发者开始考虑以HTML5来开发移动应用,将网页应用的便捷性和移动应用的优势相结合,HTML5开发移动应用的方案也应运而生。下面是关于H5开发APP规划的原理和详细介绍。 1. 初步构想在进行H5开发APP规划之前,
2023-05-25
h5封装的app怎么调用支付
H5封装的App是指通过WebView将网页打包成App的形式,同时实现了App原生的功能与交互体验。这种应用方式对于开发者而言,既能够使用Web技术开发,又可以借助App集成支付等原生功能,提升了App的灵活性与可用性。本文将详细介绍如何在H5封装的Ap
2023-05-25
h5打包app需要注意哪些问题
H5打包App指的是将基于H5技术的网页应用,通过打包成原生App的方式来进行发布和使用。这种方法具有方便快捷、跨平台等优点,在APP开发中被广泛使用。下面将从原理及需要注意的问题两方面介绍H5打包App。一、原理H5打包App的实现原理主要是“壳”和“桥
2023-05-25
h5打包app框架
HTML5作为跨平台的Web技术,具有很强的可扩展性和灵活性,因此被广泛应用于移动端应用的开发。然而,由于浏览器的限制,HTML5在移动端应用开发中的性能和体验方面仍有欠缺。因此,为了提高HTML5移动应用的性能和用户体验,出现了一些h5打包app框架。h
2023-05-25
h5打包app支付问题
在移动互联网时代,越来越多的企业和开发者开始关注H5应用的开发和打包。相对于传统的原生应用开发,H5应用开发更加灵活、便捷和低成本。同时,随着支付宝、微信等移动支付工具的普及,企业和开发者也越来越关注H5应用中支付相关的问题。H5应用中支付的基本流程如下:
2023-05-25
app开发调用h5
随着移动设备的普及和Web技术的发展,许多应用程序在功能方面都选择使用H5页面来实现,因为它具有良好的跨平台性能和良好的用户体验。本文将向您展示移动应用程序如何通过WebView调用H5页面。一、 WebView简介WebView是Android中提供的一
2023-05-25
app h5页面开发技术
H5页面开发技术是一种基于HTML5技术的网页开发技术,能够根据网页的不同需求,灵活地添加动态交互、多媒体、音视频等元素,提升用户的浏览体验,同时对各种设备的适应性也更好。一、HTML5基础HTML5是用于构建Web页面和应用程序的最新版HTML规范。它提
2023-05-25
©2015-2021 一门APP yimenapp.com  川公网安备 51019002001185号 蜀ICP备17005078号-3