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

最后,如果大伙有什么好的学习方法或建议欢迎大家在评论中积极留言哈,希望大家能够共同学习、共同努力、共同进步。

小编在这里祝小伙伴们在未来的日子里都可以 升职加薪,当上总经理,出任CEO,迎娶白富美,走上人生巅峰!!

不论遇到什么困难,都不应该成为我们放弃的理由!

很多人在刚接触这个行业的时候或者是在遇到瓶颈期的时候,总会遇到一些问题,比如学了一段时间感觉没有方向感,不知道该从那里入手去学习,需要一份小编整理出来的学习资料的关注我主页或者点击扫描下方二维码免费领取~

这里是关于我自己的Android 学习,面试文档,视频收集大整理,有兴趣的伙伴们可以看看~

如果你看到了这里,觉得文章写得不错就给个赞呗?如果你觉得那里值得改进的,请给我留言,一定会认真查询,修正不足,谢谢。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值