رفتن به مطلب
بخش Unity به انجمن اضافه شد
  • 0

ارتباط با webview


chown

سوال

سلام میخوام :

1 . وقتی رویه یه لینک تو یه webview کلیک می کنم یه activity دیگه باز شه

2 . وقتی یه متنی رو جستجو می کنم توی webview نتایج نشون داده شه

چطور میشه ؟

لینک ارسال
به اشتراک گذاری در سایت های دیگر

16 پاسخ به این سوال تاکنون داده شده است

ارسال‌های توصیه شده

ممنون از شما پژمان عزیز ولی مشکل من حل نشد بهتره من کد وب رو بزارم

آبجکتی که روش کلیک میشه دکمه نیست بلکه تگ Li هست که من id اون رو نیاز دارم

فکر نمیکردم چنین روشی رو بگید وگرنه مثال دکمه رو نمیزدم

این کد وب من

<li class="tableMainLI" id="258">
   <div class="userImg">
        
   </div>
   <p class="quesParag">متن مورد نظر 1</p>
</li>
<li class="tableMainLI" id="259">
   <div class="userImg">
        
   </div>
   <p class="quesParag">متن مورد نظر 2</p>
</li>
<li class="tableMainLI" id="260">
   <div class="userImg">
        
   </div>
   <p class="quesParag">متن مورد نظر 3</p>
</li>

...

میخوام وقتی کاربر بر روی هرکدوم از این Li ها کلیک کرد مقدار همون Li ارسال بشه به یه اکتیویتی دیگه که شامل یه webview دیگس

لینک ارسال
به اشتراک گذاری در سایت های دیگر

سلام مهندس سوال اول شما میای تویه html یه لینک تعریف میکنید و یه ایدی بهش میدی و بعد میای از توی بیسیک اون ایدی رو میگیری و میگی هر موقع ایدی رو گرفتم اگر ایدی علی بود بیا اکتیویتی 2 رو باز کن به صورت ساده توضیح دادم

و سوال دوم شما تو چی جستجو میکنی؟ گوگل؟

لینک ارسال
به اشتراک گذاری در سایت های دیگر

خودت دسترسی داری که کدهارو ویرایش کنی؟؟

یا نداری حداقل یه چیزی بذاریم،مثل تکست باکس،که به کدها اضافه کنیم تا یه اتفاقی بیفته تا واسش شرط بذاریم.

درضمن میتونی با تگ p هم انجام بدی.

لینک ارسال
به اشتراک گذاری در سایت های دیگر

در مورد سوال اول : *لال*

در مورد سوال دوم : منظورم متنی هست که توی یه EditText نوشته شده ، میخوام وقتی کاربر متنی رو توی EditText جستجو کرد این متن بصورت یک درخواست از یک صفحه وب ، نتایج رو از دیتابیس آنلاین بکشه بیرون

لینک ارسال
به اشتراک گذاری در سایت های دیگر

متوجه سوال نمیشم اون وب ویو وصله به گوگل؟

لینک ارسال
به اشتراک گذاری در سایت های دیگر

ببینید شما دیتابیسی که قراره تو جست و جو بشه ماله خودتونه یا مال سرویس های جست و جو گر مثل گوگل؟

لینک ارسال
به اشتراک گذاری در سایت های دیگر

کد رو خودم نوشتم.

این راه کاری که میگید فکر نکنم امکانش باشه چون من یه سری ، شاید 50- 60 تایی از Li ها داشته باشم، اگر برای هر Li هم یه تکست باکس مخفی بزارم اون موقع چطور می تئنم به برنامه حالی کنم که کدوم Li کلیک شده ؟؟

لینک ارسال
به اشتراک گذاری در سایت های دیگر

نیازی نیست برای هر تگ یه تکست بذاری،میتونی یه تکست بذاری که مثلا رو اولین تگ کلیک شد داخلش بنویسه 1

دومی 2

سومی 3

و الی آخر.

حتما یه سورسی رو آماده میکنم واست.

لینک ارسال
به اشتراک گذاری در سایت های دیگر

درستش کردم کله Li ها رو گذاشتم تو یه Form بعد با Jquery نوشتم وقتی کلیک شد فرم رو submit کن که در نتیجه آدرس webview تغییر میکنه، منم با اونت OverrideUrl گفتم بورو به Activity بعد

کد HTML :

<FORM action="openActivity" id="submitForm">
   <li class="tableMainLI" id="1">
       <p class="Parag">متن 1</p>
   </li>
   <li class="tableMainLI" id="1">
       <p class="Parag">متن 2</p>
   </li>
   <li class="tableMainLI" id="1">
       <p class="Parag">متن 3</p>
   </li>
   <li class="tableMainLI" id="1">
       <p class="Parag">متن 4</p>
   </li>

   ...
</form>

کد Jquey :

$('body').on('click','.tableMainLI',function(){
   $('#submitForm').submit();
});

کد های مربوط به B4A :

1 : لود صفحه توی webview :

mainWebview.LoadUrl("http://www.google.com")

2 : کد برای اونت OverrideUrl

Sub mainWebview_OverrideUrl(Url As String) As Boolean    
   StartActivity(dovom)
   Return True
End Sub

لینک ارسال
به اشتراک گذاری در سایت های دیگر

الان مشکل اینه که چطور مقدار Id هر کدوم از ID ها رو بگیرم که بتونم با CallSubDelayed2 به عنوان درخواست بفرستمش به activity دیگه

اگه میدونین راهنماییم کنین

ممنون

لینک ارسال
به اشتراک گذاری در سایت های دیگر

الان مشکل اینه که چطور مقدار Id هر کدوم از ID ها رو بگیرم که بتونم با CallSubDelayed2 به عنوان درخواست بفرستمش به activity دیگه

اگه میدونین راهنماییم کنین

ممنون

آموزش GetElements رو ببینید توی قسمت اول یا دوم به این موضوع پرداخته شده.

لینک ارسال
به اشتراک گذاری در سایت های دیگر

نه مال خودمه ، فرض کنین یه سایت دارم برای خبرگذاری، حالا من یه EditText و یک دکمه جستجو میزارم پایینش هم یک WebView وقتی کاربری متنی رو توسط همون view های برنامه جستجو کرد ، برنامه متن رو بین تیتر اخبار که آنلاین هست جستجو کنه.

لینک ارسال
به اشتراک گذاری در سایت های دیگر

سلام مهندس سوال اول شما میای تویه html یه لینک تعریف میکنید و یه ایدی بهش میدی و بعد میای از توی بیسیک اون ایدی رو میگیری و میگی هر موقع ایدی رو گرفتم اگر ایدی علی بود بیا اکتیویتی 2 رو باز کن به صورت ساده توضیح دادم

این کار چطور ممکنه ، گشتم نتونستم چیزی پیدا کنم، اگه ممکنه یه راهنمایی کنید

ممنون

لینک ارسال
به اشتراک گذاری در سایت های دیگر

سلام.

سوالی تو قسمت فیلم آموزشی پرسیده بودی اینجا پاسخ میدم که مربوط به همین سوالت میشه که چطور روی باتون کلیک بشه تو وب ویو و بره به اکتیویتی بعدی.

یه سوال دارم اونم اینه که من چطور میتونم تو یه صفحه که با webview نمایش داده شده یه دکمه ( یا هر شی دیگه ) بزارم که وقتی روی اون کلیک شه برنامه یه Activity دیگه رو اجرا کنه

کد HTML:

<button id="btn_openActivity">Click Me</button>

این کار یکم درسر داره و باید راه رو دووور بزنی تا به نتیجه برسی.

ببین میتونی یه کاری بکنی.

یه چیز دیگه هم به کد بالات اضافه کن که وقتی روی باتون کلیک شد ، value باتون عوض بشه. تا با این کار بتونیم واسش شرطی بذاریم.

یعنی کدت اینجوری میشه:

<button id="btn_openActivity" onClick="this.value='clickshod';">Click Me</button>

پس تا اینجا با کلیک روی باتون وب ویو ، value باتون رو به clickshod تغییر دادیم.

حالا مثلا میتونیم یه تایمری چیزی تو برنامه بذاریم که چک کنه ، آیا اون باتون که تو وب ویو هست توش نوشته شده: clickshod ؟؟؟

اگه نوشته شد،پس یعنی رو باتون کلیک شده و بره به اکتیویتی بعدی و تایمر هم غیر فعال بشه.

اگه نشده که دوباره به کارش ادامه بده و چک کنه.

حالا توی تایمری که تعریف کردیم میتونیم بنویسیم:

Sub time_tick
web.executeJavascript(WebView1,"B4A.CallSub('get',true,document.getElementById('btn_openActivity')[0].value)")
End Sub

بااین کار هربار میاد value باتون رو میگیره و میده به ساب: get

ما هم تو ساب get مینویسیم:

Sub get(g As String)
If g="clickshod" Then
time.Enabled=False
StartActivity(dovom)
End If
End Sub

میاد چک میکنه که اگه value مساوی: clickshod بود تایمر رو غیر فعال میکنه و میره به اکتیویتی بعدی.

من این کدهارو تست نکردم و خودم نوشتم،قطعا این روش جواب میده .

اگه به مشکل برخوردی فقط کدها شاید یکم ویرایش بخواد. اما این روش خوبه.

لینک ارسال
به اشتراک گذاری در سایت های دیگر

سورسی برات اماده کردم.

توی کدها تغییراتی دادم...

مثلا واسه کد html اینو نوشتم:

<input type=button id=btn_openActivity value=clickMe onClick=btn_openActivity.value='clickshod';>

پیشفرض value=ClickMe هست ، وقتی روش کلیک شد میشه: clickshod

و مثلا کد چک کردن داخل تایمر رو عوض کردم:

Sub time_tick
web.executeJavascript(WebView1,"B4A.CallSub('get',true,document.getElementById('btn_openActivity').getAttribute('value'))")
End Sub

میاد از طریق getAttribute مقدار value باتون رو میگیره و میده به ساب get

اینم سورس ، به راحتی جواب داد و رفت به اکتیویتی دوم.

دانلود سورس

لینک ارسال
به اشتراک گذاری در سایت های دیگر

بایگانی شده

این موضوع بایگانی و قفل شده و دیگر امکان ارسال پاسخ نیست.

  • کاربران آنلاین در این صفحه   0 کاربر

    • هیچ کاربر عضوی،در حال مشاهده این صفحه نیست.
×
×
  • اضافه کردن...