android kotlin 与 js 交互

不喜欢说太多,喜欢直接干,直接上代码,这才是我的风格。
fragment

package com.meinong.fragment.kotlin

import android.content.Intent
import android.content.pm.PackageManager
import android.os.Bundle
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
import android.webkit.WebView
import android.webkit.WebViewClient
import com.meinong.R
import com.meinong.base.TitleBarFragment
import com.meinong.common.Appconfig
import com.meinong.utils.CameraUtils

/**
 * @Created: xiaoyu  on 2018.01.25 10:39.
 * @Describe:
 * @Review:
 * @Modify:
 * @Version:  v_1.0 on 2018.01.25 10:39.
 * @Blog:http://blog.csdn.net/noteschapter
 * @Github:https://github.com/mrxiaoyu100001
 * @Resources:
 * @Remark:
 */
class UserFragment : TitleBarFragment() {

    private var wv_content: WebView? = null

    override fun inflaterView(inflater: LayoutInflater, container: ViewGroup?, bundle: Bundle?): View {
        return inflater.inflate(R.layout.fragment_user_center, null)
    }

    override fun setActionBarRes(actionBarRes: ActionBarRes?) {
        super.setActionBarRes(actionBarRes)
        actionBarRes?.middleTitle = getString(R.string.user_center)
        actionBarRes?.leftImageVisible = Appconfig.DEFAULT_VALUE_LONG
    }

    override fun onBackClick() {
        super.onBackClick()
        onBackPressed()
    }

    override fun initWidget(parentView: View?) {
        super.initWidget(parentView)
        wv_content = bindView(R.id.frag_wv_content)
        val wv_setting = wv_content?.settings
        wv_setting?.javaScriptEnabled = true;
        wv_setting?.javaScriptCanOpenWindowsAutomatically = true
        wv_content?.addJavascriptInterface(UserJSInterface(this@UserFragment, wv_content), "javascript")
        wv_content?.loadUrl("file:///android_asset/web/usercenter.html")
        wv_content?.setWebViewClient(object : WebViewClient() {
            override fun shouldOverrideUrlLoading(view: WebView?, url: String?): Boolean {
                view?.loadUrl(url)
                return true
            }
        })
    }

    override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) {
        super.onActivityResult(requestCode, resultCode, data)
        if (requestCode == Appconfig.CAMERA_SELECT || requestCode == Appconfig.TICKET_TAKE) {
            compressWithLs(data, requestCode, wv_content)
        } else if (requestCode == Appconfig.TAG_ONE) {
            wv_content?.post(object : Runnable {
                override fun run() {
                    wv_content?.loadUrl("javascript:setAddress('" + data?.getStringExtra("address") + "')")
                }
            })
        }
    }


    override fun onRequestPermissionsResult(requestCode: Int, permissions: Array<String>, grantResults: IntArray) {
        super.onRequestPermissionsResult(requestCode, permissions, grantResults)
        if (requestCode == Appconfig.CAMERA_SELECT) {
            if (grantResults[0] == PackageManager.PERMISSION_GRANTED) {
                CameraUtils.selectPhoto(this@UserFragment)
            }
            return
        } else if (requestCode == Appconfig.CAMERA_TAKE) {
            if (grantResults[0] == PackageManager.PERMISSION_GRANTED) {
                CameraUtils.takePhoto(this@UserFragment)
            }
            return
        }
    }

}

builder

package com.meinong.fragment.kotlin

import android.Manifest
import android.app.Activity
import android.content.Context
import android.content.Intent
import android.content.pm.PackageManager
import android.os.Bundle
import android.support.v4.app.ActivityCompat
import android.support.v4.content.ContextCompat
import android.util.Log
import androi
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值