آموزش های این وب سایت به صورت رایگان در دسترس است. اطلاعات بیشتر
بروز خطا
   [message]
اشتراک در سوال
رای ها
[dataList]

دریافت نام کاربری از وب سایت لود شده در وب ویو

Hassan94  6 سال پیش  6 سال پیش
0 0

توی یه قسمتی از اپ میخوام نام کاربر  و موجودی حساب کاربر رو از سایت بگیرم و داخل یه تکست ویو بهش نشون بدم، ممنون میشم راهنماییم کنید

package test.android.webview;

import android.app.Activity;
import android.os.Bundle;
import android.webkit.WebView;
import android.webkit.WebViewClient;
import android.widget.TextView;

public class WebviewTest2Activity extends Activity {
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);

        WebView webView = (WebView) findViewById(R.id.webView);
        TextView contentView = (TextView) findViewById(R.id.contentView);

        /* An instance of this class will be registered as a JavaScript interface */ 
        class MyJavaScriptInterface 
        { 
            private TextView contentView;

            public MyJavaScriptInterface(TextView aContentView)
            {
                contentView = aContentView;
            }

            @SuppressWarnings("unused") 

            public void processContent(String aContent) 
            { 
                final String content = aContent;
                contentView.post(new Runnable() 
                {    
                    public void run() 
                    {          
                        contentView.setText(content);        
                    }     
                });
            } 
        } 

        webView.getSettings().setJavaScriptEnabled(true); 
        webView.addJavascriptInterface(new MyJavaScriptInterface(contentView), "INTERFACE"); 
        webView.setWebViewClient(new WebViewClient() { 
            @Override 
            public void onPageFinished(WebView view, String url) 
            { 
                view.loadUrl("javascript:window.INTERFACE.processContent(document.getElementsByTagName('body')[0].innerText);"); 
            } 
        }); 

        webView.loadUrl("http://shinyhammer.blogspot.com");
    }
}

0 0
از این کد هم داخل سورس اسفاده کردم ولی بازم جواب نداد (6 سال پیش)
 برای این سوال 1 پاسخ وجود دارد.
پاسخ به سوال 
Hassan94  6 سال پیش
0 0

کدها رو اینجا مینویسم تا بقیه هم استفاده کنن

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MainActivity"
android:orientation="vertical">


<WebView
android:id="@+id/webview"
android:layout_width="match_parent"
android:layout_height="450dp"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintTop_toTopOf="parent" />

<TextView
android:id="@+id/textView"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_weight="0.5"
android:text="TextView" />

<TextView
android:id="@+id/textView2"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_weight="0.5"
android:text="TextView" />

</LinearLayout>
 
 
public class MainActivity extends Activity {
private WebView webView;
private TextView txt_cash,txt_user ;
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);

webView = findViewById(R.id.webview);
txt_user = findViewById(R.id.textView2);
txt_cash = findViewById(R.id.textView);
webView.getSettings().setJavaScriptEnabled(true);
webView.addJavascriptInterface(new MyJavaScriptInterfaceUSER(), "HTMLOUT_USER");
webView.addJavascriptInterface(new MyJavaScriptInterfaceCASH(), "HTMLOUT_CASH");

webView.loadUrl("file:///android_asset/test.html");

webView.setWebViewClient(new WebViewClient() {
@Override
public void onPageFinished(WebView view, String url) {

view.loadUrl("javascript:window.HTMLOUT_USER.processHTML_USER(document.getElementsByClassName('link user-name')[0].innerHTML);");
view.loadUrl("javascript:window.HTMLOUT_CASH.processHTML_CASH(document.getElementsByClassName('link user-balance')[0].innerHTML);");

}
});
//webView.loadUrl("https://google.com");

}


/* An instance of this class will be registered as a JavaScript interface */
class MyJavaScriptInterfaceUSER {
@JavascriptInterface
@SuppressWarnings("unused")
public void processHTML_USER(String html) {
txt_user.setText("نام کاربری: " + html);
}
}
class MyJavaScriptInterfaceCASH {
@JavascriptInterface
@SuppressWarnings("unused")
public void processHTML_CASH(String html) {
txt_cash.setText("موجودی حساب: " + html);
}
}
}

فایل رو به صورت HTML ذخیره میکنید. و توی پوشه assets قرار میدید

<html>
<body>

<div style="text-align:center;">
<h1>WebView دریافت اطلاعات از</h1>
</div>

<div style="text-align:right;">
:موجودی حساب
<p class="link user-balance">
250,000 تومان
</p>
</div>

<div style="text-align:right;">
:نام کاربری
<p class="link user-name">
Hassan94
</p>
</div>

<div style="text-align:right;">
<p class="link text">
چگونه می توان مقادیر بازگشتی را از جاوا اسکریپت به اندروید به عنوان رشته دریافت کرد؟
</p>
</div>

</body>
</html>
 

پاسخگویی و مشاهده پاسخ های این سوال تنها برای اعضای ویژه سایت امکان پذیر است .
چنانچه تمایل دارید به همه بخش ها دسترسی داشته باشید میتوانید از این بخش لایسنس این آموزش را خریداری نمایید .