app实现外部浏览器打开链接

需求:安卓和IOS开发的混合app。前端使用vue,vant2,安卓使用java,ios使用的object-c。实现效果:点击按钮,下载PDF附件,app跳转到手机外部浏览器,下载附件......

1,安卓端代码:

public static void openPDFInBrowser(Context context, String url) {
        Uri uri = Uri.parse(url);
        Intent intent = new Intent(Intent.ACTION_VIEW, uri);
        intent.putExtra(Browser.EXTRA_APPLICATION_ID, context.getPackageName());
        try {
            context.startActivity(intent);
        } catch (ActivityNotFoundException e) {
            Log.w("error", "Activity was not found for intent, " + intent.toString());
        }
    }

2,IOS端代码:

[[UIApplication sharedApplication]openURL:URL options:@{} completionHandler:^(BOOL success) {
 
}];
 
函数异步执行,在主队列中调用 completionHandler 中的回调。
参数:
openURL:打开的网址
options:用来校验url和applicationConfigure是否配置正确,是否可用。
        如果校验为不可用,completionHandler的回调success为NO。
        唯一可用@{UIApplicationOpenURLOptionUniversalLinksOnly:@YES}。
        不需要就用@{}为置空,不能直接置nil。
        置空将不会校验,completionHandler的回调success恒为YES。
ompletionHandler:如不需要可置nil

 

3,前端代码使用桥接:

 _download(){
      const that = this;
      const {voucherNo,unionid,custId} = this;
      const baseUrl = config.BASE_API;
      const url = `/api/wx/down/voucherDetailByB001?voucherId=${voucherNo}&unionId=${unionid}`;
      const downUrl = baseUrl + url;
      this.isLoading = true;
      this.loadingText = "下载中";
      this.$JQAPI('saveFile', {
        param: {url: downUrl, suffix: 'pdf' },
        successCallBack: function (res) {
          that.isLoading = false;
          const result = JSON.parse(res);
          console.log(result);
          if (result && result.code == 200) {
            const data = result.data;
            console.log(data);
            Toast({message:`文件已保存至${data}文件夹`,position: 'bottom',duration: 5000});      
          } else {
            that.$toast(result.msg);
          }
        },
        failedCallBack: function (err) {
          console.log(err)
          that.$toast(err);
          that.isLoading = false;
        }
      });

 注意:后端代码返回流,不能设置content-type:application/x-msdownload,否则IOS下载的附件会带上.exe

原文链接:https://www.cnblogs.com/skrr/p/17130778.html

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:app实现外部浏览器打开链接 - Python技术站

(0)
上一篇 2023年4月18日
下一篇 2023年4月18日

相关文章

  • 鲸鸿动能流量变现服务中国大陆地区测试流程

    一、鲸鸿动能流量变现服务前置说明 1.接入鲸鸿动能平台的应用需在应用市场上架。 2.与华为联运的游戏应用和快游戏禁止接入鲸鸿动能以外的其他广告内容/插件/SDK等。 3.中国大陆地区仅支持企业认证用户使用流量变现服务。 4.支持的设备限制: 5.媒体接入流程: 二、媒体服务平台 数据管理 【首页】或【我的报表】,支持查看预估收益以及广告展示数据。 流量变现服…

    Android 2023年4月18日
    00
  • 仿豆瓣发布-编辑框自适应高度,自动滚动定位到焦点输入

    效果图 随着输入的文本自动增加高度,键盘上方自定义菜单布局,随键盘弹起 点击编辑框,自动滚动到焦点处输入 布局层次 <ConstraintLayout>   <ScrollView>     <LinearLayout>        <Edittext/>       <自定义布局/>     &…

    Android 2023年4月18日
    00
  • Fragment回退栈相关操作

    在我的场景里,会创建多个Fragment,Fragment之间可以互相跳转,点击返回键需要一级一级往上返回。因此需要一个类似于Activity的回退栈,当然没必要做到Activity那么复杂,满足先进先出的效果即可。 添加Fragment回退栈 添加个Fragment,并将其加入回退栈,代码如下: FragmentManager fragmentManage…

    Android 2023年4月18日
    00
  • react-native-web跨平台实战

    1.背景  随着对用户体验要求的提高,产品要求提升用户体验,多端体验一致。随着多端相同的业务也越来越多,需要投入IOS,Android,Web多端开发人员。这就迫切的需要一种一次开发同时使用在Android ,IOS ,Web的解决方案。达到降本增效的目的。在几个小业面尝试,总结经验后,我们采用react-native-web多端适配。   2.问题 a.对…

    Android 2023年4月18日
    00
  • Android 启动优化(二) – 有向无环图的原理以及解题思路

    Android 启动优化(一) – 有向无环图 Android 启动优化(二) – 拓扑排序的原理以及解题思路 Android 启动优化(三) – AnchorTask 使用说明 Android 启动优化(四)- 手把手教你实现 AnchorTask Android 启动优化(五)- AnchorTask 1.0.0 版本更新了 Android 启动优化(六…

    Android 2023年4月18日
    00
  • Android报”IllegalArgumentException”如何解决?

    Android中的IllegalArgumentException异常表示传入的参数不正确,无法被正确处理。这种异常通常是由于开发者在使用函数的时候传入了错误的参数导致的,例如传入null等。 以下是两个可能导致IllegalArgumentException异常发生的示例: 传入了错误的参数类型 假设一个函数需要传入一个非空的字符串作为参数,但开发者不小心…

    Android 2023年4月3日
    00
  • 【FAQ】统一扫码服务常见问题及解答

    1.隐私政策是怎么样的?收集哪些信息? 关于Scan Kit的隐私政策及收集的信息,请查看SDK隐私安全说明。 Android:SDK隐私安全说明 iOS:SDK隐私安全说明 2.如何使用多码识别?多码模式下如何实现指定条码?多码模式的坐标支持返回坐标么?多码模式下实现自动放大? 1)统一扫码服务支持返回多码 ①android项目建议您参考MultiProc…

    Android 2023年4月25日
    00
  • Android WebView 踩坑日记,字体怎么突然变小了???

    背景 最近,端内在做 webView 统一的时候,个性签名中的 WebView 替换为 CustomWebView 之后,发现字体突然变小。 一开始不知道是什么原因,通过二分法查找最近的提交,排查之后,发现是 SignatureWebView 的继承关系从 WebView 修改为 CustomWebView。revert 之后就正常了。 于是,我问自己,为什…

    Android 2023年4月18日
    00
合作推广
合作推广
分享本页
返回顶部