Skip to content
Toggle navigation
Projects
Groups
Snippets
Help
polysoft-nafmii
/
polysoft-android
This project
Loading...
Sign in
Toggle navigation
Go to a project
Project
Repository
Issues
0
Merge Requests
0
Pipelines
Wiki
Settings
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Commit 6a76ca33
authored
Jul 19, 2021
by
amateur
Browse Files
Options
Browse Files
Tag
Download
Email Patches
Plain Diff
1
1 parent
3aac9a25
Show whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
71 additions
and
41 deletions
app/src/main/java/com/polysoft/nafmii/fragment/HomeWebviewFragment.java
app/src/main/java/com/polysoft/nafmii/fragment/WebViewFragment.java
app/src/main/java/com/polysoft/nafmii/fragment/HomeWebviewFragment.java
0 → 100644
View file @
6a76ca3
package
com
.
polysoft
.
nafmii
.
fragment
;
import
android.os.Bundle
;
import
com.polysoft.nafmii.webview.HomeWebviewHandler
;
import
com.polysoft.nafmii.webview.NativeApi
;
import
com.tencent.smtt.sdk.WebView
;
public
class
HomeWebviewFragment
extends
WebViewFragment
{
public
static
WebViewFragment
newInstances
(
String
url
)
{
HomeWebviewFragment
fragment
=
new
HomeWebviewFragment
();
Bundle
bundle
=
new
Bundle
();
bundle
.
putString
(
"url"
,
url
);
fragment
.
setArguments
(
bundle
);
return
fragment
;
}
@Override
protected
void
setWebView
(
WebView
webView
)
{
super
.
setWebView
(
webView
);
HomeWebviewHandler
handler
=
new
HomeWebviewHandler
(
this
,
webView
);
webView
.
addJavascriptInterface
(
new
NativeApi
(
handler
),
"$NativeApi"
);
super
.
setWebviewHandler
(
handler
);
}
}
app/src/main/java/com/polysoft/nafmii/fragment/WebViewFragment.java
View file @
6a76ca3
...
...
@@ -20,7 +20,6 @@ import com.polysoft.nafmii.utils.FileProviderUtils;
import
com.polysoft.nafmii.utils.IntentUtils
;
import
com.polysoft.nafmii.utils.PermissionUtils
;
import
com.polysoft.nafmii.utils.ToastUtils
;
import
com.polysoft.nafmii.webview.HomeWebviewHandler
;
import
com.polysoft.nafmii.webview.IWebview
;
import
com.polysoft.nafmii.webview.MyWebChromeClient
;
import
com.polysoft.nafmii.webview.MyWebViewClient
;
...
...
@@ -35,74 +34,51 @@ import java.io.File;
public
class
WebViewFragment
extends
Fragment
implements
WebviewLoadListener
{
private
View
rootView
;
private
ViewGroup
layout
;
private
WebView
webView
;
private
WebviewHandler
webviewHandler
;
protected
WebView
mWebview
;
private
ViewGroup
mWebviewLayout
;
private
WebviewHandler
mWebviewHandler
;
private
ValueCallback
<
Uri
[]>
filePathCallback
;
public
static
WebViewFragment
newInstances
(
String
url
)
{
public
static
WebViewFragment
newInstance
(
String
url
)
{
Bundle
args
=
new
Bundle
();
WebViewFragment
fragment
=
new
WebViewFragment
();
Bundle
bundle
=
new
Bundle
();
bundle
.
putString
(
"url"
,
url
);
fragment
.
setArguments
(
bundle
);
args
.
putString
(
"url"
,
url
);
fragment
.
setArguments
(
args
);
return
fragment
;
}
@Nullable
@Override
public
View
onCreateView
(
@NonNull
LayoutInflater
inflater
,
@Nullable
ViewGroup
container
,
@Nullable
Bundle
savedInstanceState
)
{
public
View
onCreateView
(
@NonNull
LayoutInflater
inflater
,
@Nullable
ViewGroup
container
,
@Nullable
Bundle
savedInstanceState
)
{
super
.
setHasOptionsMenu
(
true
);
return
inflater
.
inflate
(
R
.
layout
.
fragment_webview
,
null
,
false
);
}
@Override
public
void
onViewCreated
(
@NonNull
View
view
,
@Nullable
Bundle
savedInstanceState
)
{
super
.
onViewCreated
(
view
,
savedInstanceState
);
this
.
layout
=
view
.
findViewById
(
R
.
id
.
webview_layout
);
this
.
initWebview
();
}
private
void
initWebview
()
{
WebView
webView
=
X5WebviewUtils
.
create
(
getActivity
());
webView
.
setWebChromeClient
(
new
MyWebChromeClient
(
this
));
webView
.
setWebViewClient
(
new
MyWebViewClient
(
this
));
this
.
webviewHandler
=
new
HomeWebviewHandler
(
this
,
webView
);
this
.
layout
.
removeAllViews
();
int
match
=
ViewGroup
.
LayoutParams
.
MATCH_PARENT
;
this
.
layout
.
addView
(
webView
,
new
ViewGroup
.
LayoutParams
(
match
,
match
));
this
.
webView
=
webView
;
this
.
mWebviewLayout
=
view
.
findViewById
(
R
.
id
.
webview_layout
);
this
.
initWebView
();
Bundle
bundle
=
getArguments
();
String
url
=
bundle
.
getString
(
"url"
,
""
);
this
.
webView
.
loadUrl
(
url
);
}
public
IWebview
getWebview
()
{
return
this
.
webviewHandler
;
if
(
null
==
this
.
mWebviewHandler
)
{
this
.
mWebviewHandler
=
new
WebviewHandler
(
this
,
this
.
mWebview
);
}
return
this
.
mWebviewHandler
;
}
@Override
public
void
onDestroy
()
{
super
.
onDestroy
();
X5WebviewUtils
.
destroy
(
this
.
webV
iew
);
X5WebviewUtils
.
destroy
(
this
.
mWebv
iew
);
}
@Override
public
void
onWebviewLoad
(
int
type
,
Object
param
)
{
if
(
type
==
WebviewLoadListener
.
TYPE_FINISH
)
{
}
else
if
(
type
==
WebviewLoadListener
.
TYPE_ERROR
)
{
}
}
@Override
public
void
onShowFileChooser
(
ValueCallback
<
Uri
[]>
filePathCallback
,
String
[]
acceptTypes
,
boolean
isCapture
)
{
...
...
@@ -121,7 +97,7 @@ public class WebViewFragment extends Fragment implements WebviewLoadListener {
}
@Override
public
void
onActivityResult
(
int
requestCode
,
int
resultCode
,
@Nullable
@org
.
jetbrains
.
annotations
.
Nullable
Intent
data
)
{
public
void
onActivityResult
(
int
requestCode
,
int
resultCode
,
@Nullable
Intent
data
)
{
if
(
IntentUtils
.
ACTIVITY_CODE_CHOOSERFILE
==
requestCode
)
{
if
(
Activity
.
RESULT_OK
!=
resultCode
)
{
ToastUtils
.
showLong
(
"操作失败!"
);
...
...
@@ -154,7 +130,7 @@ public class WebViewFragment extends Fragment implements WebviewLoadListener {
String
filepath
=
IntentUtils
.
getTakePhotoPath
(
super
.
getContext
());
File
file
=
BitmapUtils
.
compressBitmap
(
filepath
);
PhotosReceiver
.
sendBroadcastCamera
(
super
.
getContext
(),
file
.
getAbsolutePath
());
}
else
if
(
null
!=
data
&&
null
!=
data
.
getData
()){
}
else
if
(
null
!=
data
&&
null
!=
data
.
getData
())
{
Uri
imgUrl
=
data
.
getData
();
String
newFilepath
=
IntentUtils
.
getTakePhotoPath
(
super
.
getContext
());
String
filepath
=
FileProviderUtils
.
getUriPath
(
super
.
getContext
(),
imgUrl
);
...
...
@@ -166,4 +142,31 @@ public class WebViewFragment extends Fragment implements WebviewLoadListener {
}
}
}
protected
void
loadUrl
(
String
url
)
{
this
.
mWebview
.
loadUrl
(
url
);
}
protected
void
setWebviewHandler
(
WebviewHandler
handler
)
{
this
.
mWebviewHandler
=
handler
;
}
protected
void
setWebView
(
WebView
webView
)
{
webView
.
setWebChromeClient
(
new
MyWebChromeClient
(
this
));
webView
.
setWebViewClient
(
new
MyWebViewClient
(
this
));
this
.
mWebview
=
webView
;
}
private
void
initWebView
()
{
WebView
webView
=
X5WebviewUtils
.
create
(
getActivity
());
this
.
setWebView
(
webView
);
this
.
showWebviewLayout
(
webView
);
this
.
loadUrl
(
super
.
getArguments
().
getString
(
"url"
,
""
));
}
private
void
showWebviewLayout
(
WebView
webView
)
{
this
.
mWebviewLayout
.
removeAllViews
();
int
match
=
ViewGroup
.
LayoutParams
.
MATCH_PARENT
;
this
.
mWebviewLayout
.
addView
(
this
.
mWebview
,
new
ViewGroup
.
LayoutParams
(
match
,
match
));
}
}
\ No newline at end of file
Write
Preview
Markdown
is supported
Attach a file
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to post a comment